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

Vi phạm ràng buộc toàn vẹn:1452 laravel

Truy vấn sql cuối cùng của bạn là insert into occasions (updated_at, created_at) values (2014-06-30 18:42:11, 2014-06-30 18:42:11) . Bạn sẽ thấy rằng chỉ updated_atcreated_at đang được chèn.

Điều này xảy ra vì Laravel bảo vệ mã của bạn chống lại Chuyển nhượng hàng loạt theo mặc định:

Bạn sẽ cần làm cho các cột của mình có thể lấp đầy bằng cách thêm một mảng $fillable các cột trong mô hình của bạn:

class Occasion extends Eloquent
{
    protected $fillable = array(
        'created_by_user_id',
        'updated_by_user_id',
        // The rest of the column names that you want it to be mass-assignable.
    );
}

Hoặc làm ngược lại, bảo vệ bất kỳ cột nào mà bạn không muốn chúng có thể gán hàng loạt:

class Occasion extends Eloquent
{
    protected $guarded = array(
        // Any columns you don't want to be mass-assignable.
        // Or just empty array if all is mass-assignable.
    );
}

Lưu ý rằng bạn đang gán Input::get() vào mô hình trực tiếp. Đây là một cảnh báo đối với Phân công hàng loạt phần:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể chèn ký tự Trung Quốc vào MySQL

  2. Tạo bảng mysql với bộ ký tự mặc định rõ ràng, nếu tôi không tạo thì sao?

  3. MySQL trả về hàng đầu tiên của một bảng đã tham gia

  4. thứ tự mysql php theo dấu thời gian không chính xác

  5. Cấu trúc tốt nhất cho cơ sở dữ liệu quan hệ với các bài báo và thẻ