我正在显示用户活动作业和仪表板上的待处理采访。我可以让积极的工作工作,但当我尝试显示工作的未决面试时,我得到错误:"试图获得非对象的错误。"该行的错误是:$ jobInterviews-> id
这是我的信息中心视图:
@if (! $active)
<p> You don't have any active projects. Click here to post one! </p>
@else
@foreach($active as $job)
<div class="media-body">
display $job name/description
</div>
@if ($jobInterviews->id == $active->id)
<table class="table table-striped">
display $jobInterviews details
</table>
@else
<p></p>
@endif
</div> <!-- .media-body -->
@endforeach
@endif
</div> <!-- .media -->
我已分别使用$ active和$ jobInterviews运行@foreach循环,两者都运行良好。但是当我嵌套@if($ jobInterviews-&gt; id == $ active-&gt; id)时,我得到错误&#34;试图显示非对象的属性&#34;与$ jobInterviews-&gt; id
相关这是我的控制器方法:
public function getdashboard()
{
//reading the user information
$arrPageData['user'] = Sentry::getUser();
//reading the job interviews
$arrPageData['jobInterviews'] = JobInterview::readCurrentInterviews($this->userID);
//reading the active jobs
$arrPageData['active'] = Job::activeJobs($this->userID);
return View::make('clients.dashboard', $arrPageData);
}
最后,这是我的查询语句:
public static function readCurrentInterviews($jobID){
return DB::table('jobs')
->join('job_interviews', 'job_interviews.job_id', '=', 'jobs.id')
->join('contractors', 'contractors.user_id', '=', 'job_interviews.send_to')
->where('jobs.user_id', '=', $jobID)
->where('job_interviews.status', '=', 'awaiting response')
->orderBy('job_interviews.created_at', 'desc')
->select('jobs.id','jobs.title', 'contractors.user_id', 'contractors.contact_name', 'job_interviews.status', 'jobs.created_at')
->get();
}
public static function activeJobs($contractorId){
return DB::table('jobs')
->where('user_id', '=', $contractorId)
->select('id','title', 'description', 'created_at')
->get();
}
如果有人知道为什么会抛出这个非对象错误,我真的很感激帮助理解它。先感谢您。
答案 0 :(得分:1)
只需更改以下内容:
@if ($jobInterviews->id == $active->id)
对此:
@if ($jobInterviews->id == $job->id)
此处$active
是一系列模型。
确保$jobInterviews
不是模型数组,如果它也是模型数组,那么$jobInterviews->id
将无效。可能是:
foreach($jobInterviews as $jobInterview)
...
foreach($active as $job)
@if ($jobInterview->id == $job->id)
...
@endforeach
@endforeach
在view
$jobInterviews
和$active
中,两者都是多个模型的数组,使用$jobInterviews->id
或$active->id
将无效,相反,您必须从中选择一个单独的项目。