加载时自动访问Eloquent Relationship

时间:2017-11-13 15:44:01

标签: php laravel eloquent

我正在开发一个项目,要求我从表中获取所有信息的所有列表 - 就像在博客中一​​样,我使用all()方法来执行此操作但是当我试图获得我在模型中声明的方法时,我得到一个错误,说

  

集合实例不存在

但是当我使用The Model::find($id)->relationship()->name;

它工作正常。有没有办法在laravel中加载all()函数的所有关系。

感谢您的帮助..

2 个答案:

答案 0 :(得分:1)

当您执行Model::find($id)->relationship();时,您实际上正在访问Dynamic relationships Properties

您需要使用Model::find($id)->relationship()->get();

将其转换为集合

然后你可以执行任何collection method来获得你想要的结果。执行此操作后,您可以访问其属性,如下所示:

$model_varible = Model::find($id)->relationship()->get();
$model_variable = $model_variable->find($id)->name;

请告诉我这是否适合您。

答案 1 :(得分:0)

您应该使用不带括号的关系来访问模型:

Adobe Illustrator

并使用“with()”来填充关系:

Model::find($id)->relationship->name;