我有一个返回所有职位发布数据的方法。这就是我的尝试:
public function show($id)
{
$applicantData = Applicant::whereId($id)->first();
$jobData = Job::all();
//dd($jobData);
//dd($jobData->job_title);
return view('applicant.confirmation',compact("applicantData","jobData"));
}
dd($jobData);
returns:
dd($jobData->job_title);
它会返回错误:
ApplicantController.php第150行中的ErrorException:未定义 property:Illuminate \ Database \ Eloquent \ Collection :: $ job_title
如何获得$jobData->job_title
值?
答案 0 :(得分:2)
您应该使用Laravel中的each
method来迭代集合:
$jobData->each(function ($item, $key) {
dd($item->job_title);
});
答案 1 :(得分:1)
您必须遍历$jobData
,因为它将返回所有行。类似的东西:
$jobData = Job::all();
foreach ($jobData as $job) {
echo $job->job_title;
}
答案 2 :(得分:1)
它们是数组中的对象,因此您可以直接选择值。如果您需要第一项,然后$jobData[0]->job_title
或$jobData->first()->job_title
,或者您可以循环foreach($jobData as $data){$data->job_title}
答案 3 :(得分:1)
$jobData
是collection,因此您无法像job_title
一样直接访问$jobData->job_title
。我想你想在你的视图文件中访问它们。因此请遵循
@foreach($jobData as $job)
{{ $job->job_title }}
@endforeach
答案 4 :(得分:1)
public function show($id)
{
$applicantData = Applicant::whereId($id)->first();
$jobData = Job::find($applicantData->job_id); //this will give you the job
dd($jobData);
dd($jobData->job_title);
return view('applicant.confirmation',compact("applicantData","jobData"));
}