gpt4 book ai didi

laravel - 如何检查一个记录是否附加到另一个记录?

转载 作者:行者123 更新时间:2023-12-05 00:18:50 26 4
gpt4 key购买 nike

我已经定义了 Student 之间的多对多关系和 Seminar楷模。我如何知道 一位特定的学生 正在参加 一个特定的研讨会 ?我想要实现的非工作示例如下所示:

$seminar->students()->contains($student->id);

使用上面的代码片段时显示以下错误:

BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::contain()'

最佳答案

试试吧:

$seminar->students->contains($student->id);

假设 $student包含 Student 的一个实例模型,您可以进一步简化它,只需使用:
$seminar->students->contains($student);

当您添加括号时,您正在使用 Laravel 查询构建器,并且您从未完成查询。要按照您最初的方式进行操作,您需要:
$seminar->students()->get()->contains($student->id);

如果您想在获取学生时添加约束,此方法可能很有用。

但通常你可以省略括号,返回一个集合,允许你使用类似 contains 的方法。 .

这有一个额外的好处,即一旦加载关系就不会重新查询数据库,因此通常是一种更有效的获取关系的方法。

如果您还没有加载学生并想要一种有效的数据库检查方法,您可以使用:
$seminar->students()->where('students.id', $student->id)->exists();

关于laravel - 如何检查一个记录是否附加到另一个记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37142235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com