Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel termasuk melempar kesalahan yang tidak ditentukan

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Crosstab/Agregasi Pivot. Menghapus jumlah berdasarkan kolom di tabel lain

  2. Apakah PHP memiliki konstruksi yang mirip dengan DataSet .NET?

  3. Judul Kategori Multi-bahasa di Database MySQL

  4. Dapatkan total bidang yang dikelompokkan berdasarkan tanggal dan bidang lain

  5. Variabel yang ditentukan pengguna MySQL dalam klausa WHERE