如何使用laravel获取多对多关系中的第一条记录

wljmcqd8  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(109)

我的模型

public function semesters(): BelongsToMany
    {
        return $this->belongsToMany(Semester::class)
        ->orderBy('name', 'desc');
    }

我的控制器代码
$semesters = Auth::guard('student')->user()->semesters;
我的密码是
{{ dd($semesters->name) }}
错误是
Property [name] does not exist on this collection instance.
我的期望是在刀片中获得singal学期名称

cidc1ykv

cidc1ykv1#

您面临的错误是由于您没有引用正确的数据。你可以这样做:

$semesters = Auth::guard('student')->user()->semesters;
$semesterName = $semesters->first()->name;
return view('your-blade-view', compact('semesterName'));

然后你可以使用semesterName在前端呈现这个名字。代码将获取第一个结果,然后从结果中获取名称。希望这能帮上忙。

mhd8tkvw

mhd8tkvw2#

另一种方式:

$semesters = Auth::guard('student')->user()->semesters;
 return view('dashboards.student.home',['semester'=>$semesters[0]['name']]);

这是非常simpale我也得到了另一个stackovreflow问题的想法,也为我工作

相关问题