След като помогнах чрез чат, проблемът беше, че имаше съществуваща колона, наречена group , а методът на връзката също се нарича group , така че стойността на колоната в таблицата имаше предимство пред метода на връзката.
Преименуване на метода на връзката или group колона към нещо като group_id и двете са подходящи решения (бих предложил group_id маршрут).
Оригинален отговор:
Извличате групата чрез магическо свойство, а не директно от метода.
echo User::find(1)->group->name;
Ако извлечете group() метод, той ще върне обекта на връзката, няма да изпълнява никакви заявки и ще извлече свързания обект.
Освен това Eloquent ще направи предположения какви са имената на колоните на външния ключ. Group автоматично ще се преведе в group_id колона. Ако имате съществуваща колона, наречена group , тогава трябва да посочите това изрично във вашата връзка:
public function group ()
{
return $this->belongsTo('Group', 'group');
}
Ако получите грешка „Опитвам се да получа свойство на не-обект“ за свойството group , тогава вашата връзка не връща никакви резултати ($user->group ще бъде NULL ). В този момент трябва да се уверите, че връзката ви е настроена правилно (напр. като използвате правилното belongsTo, hasOne, hasMany и т.н.) и се уверете, че действително имате свързан запис във вашата база данни.