Хорошо, я немного смущен отношениями, относящимися к моделям.
У меня есть модель Feeds, которая расширяет Eloguent.
Я создал функцию отношений, называемую User.
public function user(){ return $this->belongsTo('User'); // and I also tried return $this->belongsTo('User', 'user_id'); }
На вид, который я пытаюсь сделать:
@foreach($feeds as $feed) {{$feed->user()->first_name}} {{$feed->user()->last_name}} @endforeach
но я получаю эту ошибку. Неопределенное свойство: Illuminate \ Database \ Eloquent \ Relations \ BelongsTo :: $ last_name
Когда я делаю $ feed-> user-> first_name, он отлично работает, но я думал, что user () -> first_name было более эффективным. Что я делаю не так?
Это поля и типы данных базы данных:
корма
feed_id INT user_id INT feed Text created_at TIMESTAMP updated_at TIMSTAMP school_id INT
пользователи
user_id INT username VARCHAR password VARCHAR first_name VARCHAR last_name VARCHAR created_at TIMESTAMP updated_at TIMESTAMP
Использовать динамическое свойство
$feed->user->first_name;
Когда вы используете динамическое свойство, это то же самое, что и выполнение ниже, за исключением того, что Laravel делает это для вас с помощью магического __call()
.
$feed->user()->first()->first_name;
используя только функцию $ feed-> user (), вы можете получить связь, которая позволяет вам добавлять дополнительные ограничения и отношения, прежде чем получать объект на другом конце.