我搜索了其他问题,但找不到答案。我收到以下错误。试图获取非对象的属性“nameP”控制器public function store(Request $request){ $hourID = $request->hour_id; $id = (Hour::latest()->first()->id) + 1; $projectID = $request->project_id; $sub = DB::table('hours')->join('projects', function ($join) use ($projectID, $id) { $join->on('hours.project_id', '=', 'projects.id') ->where('hours.project_id', '=', $projectID) ->where('hours.id', '=', $id); })->select('nameP') ->get()->first(); $name = $sub->nameP; $hour = Hour::create([ 'id' => $hourID, 'project_id' => $request->project_id, 'day' => $request->day, 'nHours' => $request->nHours, 'notesH' => $request->notesH ]); return Response::json([$hour, 'nameP' => $name]);}如果我使用 Laravel Tinker 执行此代码,它可以工作,所以我不明白为什么会发生此错误。有什么建议么?
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
如果您使用get()方法,您将获得多条记录。
使用first()你只会得到一个集合。
删除get(), and use onlyfirst()方法
$name = '';
$sub = DB::table('hours')->join('projects', function($join) use ($projectID,$id){
$join->on('hours.project_id', '=', 'projects.id')
->where('hours.project_id', '=', $projectID)
->where('hours.id', '=', $id);
})->select('nameP')->first();
if(!empty($sub)){
$name=$sub->nameP;
}
- 1 回答
- 0 关注
- 68 浏览
添加回答
举报
0/150
提交
取消