Setelah membantu lewat chat, masalahnya ada kolom yang ada namanya group
, dan metode hubungan juga disebut group
, sehingga nilai kolom tabel lebih diutamakan daripada metode hubungan.
Mengganti nama metode hubungan, atau group
kolom ke sesuatu seperti group_id
keduanya merupakan solusi yang sesuai (saya sarankan group_id
rute).
Jawaban asli:
Anda mengambil grup melalui properti ajaib, bukan langsung dari metode.
echo User::find(1)->group->name;
Jika Anda mengambil group()
metode, itu akan mengembalikan objek hubungan, tidak melakukan kueri apa pun dan mengambil objek terkait.
Juga, Eloquent akan membuat asumsi tentang apa nama kolom kunci asing Anda. Group
akan secara otomatis menerjemahkan ke group_id
kolom. Jika Anda memiliki kolom bernama group
, maka Anda harus menentukannya secara eksplisit dalam hubungan Anda:
public function group ()
{
return $this->belongsTo('Group', 'group');
}
Jika Anda menerima kesalahan "Mencoba mendapatkan properti non-objek" untuk properti group
, maka hubungan Anda tidak memberikan hasil apa pun ($user->group
akan menjadi NULL
). Pada saat itu, Anda harus memastikan hubungan Anda diatur dengan benar (misalnya menggunakan milik yang benar, hasOne, hasMany, dll.), dan memastikan bahwa Anda benar-benar memiliki entri terkait dalam database Anda.