为了账号安全,请及时绑定邮箱和手机立即绑定

修复尝试获取非对象 Laravel 属性的错误

修复尝试获取非对象 Laravel 属性的错误

PHP
GCT1015 2022-07-16 18:10:53
我搜索了其他问题,但找不到答案。我收到以下错误。试图获取非对象的属性“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;

}


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信