Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel thuộc về lỗi không xác định

Sau khi trợ giúp thông qua trò chuyện, vấn đề là có một cột hiện có tên là group và phương thức quan hệ cũng được gọi là group , vì vậy giá trị cột trong bảng được ưu tiên hơn phương thức quan hệ.

Đổi tên phương thức quan hệ hoặc group thành cột nào đó như group_id cả hai đều là giải pháp phù hợp (Tôi đề xuất group_id tuyến đường).

Câu trả lời ban đầu:

Bạn truy xuất nhóm thông qua thuộc tính ma thuật, không phải trực tiếp từ phương thức.

echo User::find(1)->group->name;

Nếu bạn truy xuất group() , nó sẽ trả về đối tượng quan hệ, không thực hiện bất kỳ truy vấn nào và tìm nạp đối tượng liên quan.

Ngoài ra, Eloquent sẽ đưa ra các giả định về tên cột khóa ngoại của bạn là gì. Group sẽ tự động dịch sang group_id cột. Nếu bạn có một cột hiện tại được gọi là group , thì bạn nên chỉ định điều đó một cách rõ ràng trong mối quan hệ của mình:

public function group () 
{
    return $this->belongsTo('Group', 'group');
}

Nếu bạn nhận được lỗi "Đang cố gắng lấy thuộc tính của non-object" cho thuộc tính group , thì mối quan hệ của bạn không trả lại bất kỳ kết quả nào ($user->group sẽ là NULL ). Tại thời điểm đó, bạn nên đảm bảo rằng mối quan hệ của bạn được thiết lập đúng cách (ví dụ:sử dụng đúng thuộc tính của mình, hasOne, hasMany, v.v.) và đảm bảo rằng bạn thực sự có một mục nhập liên quan trong cơ sở dữ liệu của mình.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh Java Prepared không thực thi

  2. Tôi có thể lấy lại giá trị mặc định cho tên cột trong bảng MySQL không?

  3. MySQL số ​​nguyên không dấu vấn đề số học?

  4. Truy vấn MySQL để hiển thị các bản ghi có ngày hiện tại ở trên cùng và các bản ghi khác theo thứ tự giảm dần

  5. Ngoại lệ trong luồng chính java.lang.Incomp Tương thíchClassChangeError:Đã tìm thấy giao diện org.apache.hadoop.mapreduce.JobContext, nhưng lớp được mong đợi?