laravel - 尝试浏览对象时为 foreach() 提供的参数无效。刀片 - Laravel
问题描述
我正在制作要下载的 pdf 报告,这是相关数据。我正在尝试浏览,但我遇到了麻烦
[
{
"id":1,
"name":"asdfasd",
"description":"fasdfasdfafa",
"user_id":1,
"anonymous":0,
"created_at":"2019-12-09 10:30:50",
"updated_at":"2019-12-09 10:33:25",
"survey_questions":[
{
"id":1,
"question":"asfdasdfsdf",
"user_id":1,
"survey_section_id":1,
"response_type_id":1,
"optional":0,
"num":null,
"rank":null,
"show_text":0,
"created_at":"2019-12-09 10:29:27",
"updated_at":"2019-12-09 10:29:27",
"pivot":{
"survey_id":1,
"survey_question_id":1
}
}
],
"answer":[
],
"evaluation":{
"id":1,
"survey_id":1,
"init_date":"2019-12-04 00:00:00",
"end_date":"2019-12-07 00:00:00",
"report_date":"2019-12-08 00:00:00",
"created_at":"2019-12-09 10:30:50",
"updated_at":"2019-12-09 10:33:25",
"evaluation_results":[
]
}
}
]
它被称为$survey
,我尝试过做几件事
$survey->name; //works
$survey->survey_questions; //no result when there should be
$survey->evaluation; //works while the survey_questions doesn't
我想访问其他的东西survey_questions, answer
,然后访问里面的东西。
当我尝试这个时,我得到了提到的错误Invalid argument supplied for foreach()
@foreach($survey->survey_questions as $question)
{{$question}}
@endforeach
这就是我从控制器发送数据的方式
$survey = Survey::with('surveyQuestions', 'answer',
'evaluation', 'evaluation.evaluationResults')
->where('id', $id)->first();
$pdf = App::make('dompdf.wrapper');
$pdf->loadView('pdf.report', ['survey' => $survey]);
return $pdf->stream();
访问这些数据的正确方法是什么?
解决方案
我相信您surveyQuestions()
在调查模型中定义了方法,如果是这样,那么您foreach
应该像
@foreach($survey->surveyQuestions as $question)
{{$question}}
@endforeach
推荐阅读
- matplotlib - 并排绘制条形图
- javascript - Recharts 条形图图例位置
- javascript - 如何在 nodejs 和 Mongodb 中向 req.body 添加参数
- mysql - 比较两个表,如果值存在则显示1,如果值不存在则显示0
- python - 如何根据其他两个列表拆分 numpy 数组列表
- authentication - .NET Web API2 - 双方法身份验证
- wordpress - 如何在 wordpress 下拉菜单中隐藏禁用的选项?
- google-data-studio - 获取用户的所有记录,如果一个具有一定的价值
- kubernetes - 外部http访问kubernetes集群
- r - 将向量重复向量次数