laravel 中的 model->name 和 model() 有啥区别?
Posted
技术标签:
【中文标题】laravel 中的 model->name 和 model() 有啥区别?【英文标题】:what is difference between model->name and model() in laravel?laravel 中的 model->name 和 model() 有什么区别? 【发布时间】:2021-07-27 07:55:43 【问题描述】:我想知道 laravel eloquent conisgnment->runsheet->name
和 $consignment->runsheet()->name
的区别
我注意到存在性能差异,但为什么呢?我还注意到,当我尝试获取 $consignment->runsheet->name
这样的关系属性时,它工作正常,但 $consignment->runsheet()->name
不起作用
【问题讨论】:
【参考方案1】:第一个
$consignment->runsheet
检索一个集合(因此它已经对 DB 进行了查询)
第二个
$consignment->runsheet()
是一个查询构建器(尚未进行数据库查询),您可以像任何查询构建器实例一样链接它
所以如果你想从第二个获取属性,你可以这样做:
$consignment->runsheet()->first()->name;
或
$consignment->runsheet()->value('name');
【讨论】:
以上是关于laravel 中的 model->name 和 model() 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章