Я пытаюсь показать список контактов вошедшего в систему пользователя. Но очевидно я что-то не так делаю.
На странице списка контактов появляется ошибка:
Trying to get property 'name' of non-object
User.php
public function contacts()
{
return $this->belongsToMany(Contact::class);
}
Contact.php
public function users()
{
return $this->belongsToMany(User::class);
}
ContactsController.php
public function index()
{
//
$user = Auth::user();
$user_contacts = $user->contacts()
return view('contacts.list')->with('contacts', $user_contacts);
}
list.blade.php
@foreach ($contacts as $contact)
* {{ $contact->name }} <br>
@endforeach
пользователи:
contact_user:
Ошибка, исправлено
$user_contacts = $user->contacts() должен быть $user_contacts = $user->contacts.






Если вы хотите получить доступ к сводным свойствам вашей таблицы отношений многие-ко-многим, вы можете получить доступ с помощью pivot
@foreach ($contacts as $contact)
* {{ $contact->pivot->name }} <br>
@endforeach
Также создает отношения между контактом и пользователями.
public function contacts()
{
return $this->belongsToMany(Contat::class)->withPivot(['your', 'pivot','columns']);
}
Надеюсь это поможет
В нем говорится: «Попытка получить свойство 'pivot' не-объекта».
@Raven создали ли вы отношения между пользователем и контактами?
использовать ->withPivot(['your', 'pivot','columns']);
Да, я создал отношения ->withPivot(['name', 'address']);
@Raven, вам тоже нужно изменить код в вашем контроллере
На что поменять?
Позвольте нам продолжить обсуждение в чате.
Вы должны вернуть данные своей сводной таблицы в следующем соотношении:
public function contacts()
{
return $this->belongsToMany(Contat::class)->withPivot(['your', 'pivot','columns']);
}
И вы должны получить данные отношения, как показано ниже:
$user_contacts = $user->contacts // Not $user->contacts()
Я получаю сообщение об ошибке: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'contact_user.name' in 'field list'
@Raven Откуда у тебя эта ошибка? Отредактируйте свой вопрос, включив в него поля модели (схему таблицы).
Я получаю эту ошибку на странице индекса, которая должна отображать список контактов пользователя, вошедшего в систему. Я добавил схему таблицы.
@Raven Что выводит dd($contacts) на индексную страницу?
@Raven Продолжим обсуждение здесь в чате
В вашем контроллере у вас есть следующее:
public function index()
{
$user = Auth::user();
$user_contacts = $user->contacts()
return view('contacts.list')->with('contacts', $user_contacts);
}
Это должно быть следующее;
public function index()
{
$user = Auth::user();
$user_contacts = $user->contacts
return view('contacts.list')->with('contacts', $user_contacts);
}
Использование $user->contacts() (метод) вернет экземпляр построителя запросов для этой связи, тогда как $user->contacts (свойство) вернет коллекцию с результатами из запроса выбора.
Ваш
User.phpне имеет функции отношенияcontacts()