【问题标题】: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 不起作用
【问题讨论】:
标签:
laravel
eloquent
query-builder
【解决方案1】:
第一个
$consignment->runsheet
检索一个集合(因此它已经对 DB 进行了查询)
第二个
$consignment->runsheet()
是一个查询构建器(尚未进行数据库查询),您可以像任何查询构建器实例一样链接它
所以如果你想从第二个获取属性,你可以这样做:
$consignment->runsheet()->first()->name;
或
$consignment->runsheet()->value('name');