В чем разница между $ model-> foo и $ model-> getAttributeValue ('foo')? - PullRequest
0 голосов
/ 08 мая 2018

Когда у меня есть экземпляр модели Eloquent под названием $ model, я могу получить значение его атрибута (например, имя пользователя) двумя способами:

$name = $user->name;

или

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

Какой способ является правильным и в чем разница между этими двумя способами получения значения?

1 Ответ

0 голосов
/ 08 мая 2018

Когда вы вызываете атрибут модели,

  • Сначала вызывается метод __get().
  • Затем вызывается метод getAttribute().
  • И, наконец, getAttributeValue() или getRelationValue() называется.

Итак, в основном то же самое, используя свойство или getAttributeValue() для получения атрибута модели. Просто помните, что он не может получить доступ к модельным отношениям.

Отметим, что большая часть (или все?) Документации Laravel использует свойства для доступа к атрибутам модели.

...