$ model-> foo和$ model-> getAttributeValue(' foo')之间的区别是什么?

时间:2018-05-08 04:59:56

标签: php laravel eloquent laravel-5.4

当我有一个名为$ model的Eloquent模型实例时,我可以通过两种方式检索其属性的值(例如用户名):

$name = $user->name;

$name = $user->getAttributeValue('name');

哪种方式是正确的,这两种检索值的方法之间有什么区别?

1 个答案:

答案 0 :(得分:1)

调用模型属性时,

  • 首先调用__get()方法。
  • 然后调用getAttribute()方法。
  • 最后调用getAttributeValue()getRelationValue()

因此,使用属性或getAttributeValue()来获取模型属性基本相同。请记住,它无法访问模型关系。

请注意,大多数(或所有?)Laravel文档都使用属性来访问模型属性。