laravel 中的 model->name 和 model() 有什么区别?

what is difference between model->name and model() in laravel?

我想知道laraveleloquentconisgnment->runsheet->name$consignment->runsheet()->name

的区别

我注意到存在性能差异,但为什么呢?我还注意到,当我尝试像 $consignment->runsheet->name 那样建立关系时 属性 它工作正常但 $consignment->runsheet()->name 不起作用

第一个

$consignment->runsheet

检索一个集合(因此它已经对数据库进行了查询)

而第二个

$consignment->runsheet()

是一个查询生成器(尚未进行数据库查询)您可以像任何查询生成器实例一样链接它

所以如果你想从第二个得到 属性 你可以这样做:

$consignment->runsheet()->first()->name;

$consignment->runsheet()->value('name');