Tôi có bảng sau:Protect bảng pivot từ phân khối sử dụng hùng hồn
document: id, name;
author: id, name, job_title;
document_author: document_id, author_id, position
Tôi đang đi qua một loạt các cấu trúc sau:
$attributes = [name, job_title, position];
Tôi đang cố gắng để tạo ra mô hình của tác giả và đính kèm nó vào tài liệu:
$author = \Author::create($attributes);
\Document::find($id)->authors()->save($author,$attributes);
Sau đó, tôi nhận được QueryException
, vì laravel cố gắng gán hàng loạt các thuộc tính cho bảng tổng hợp, trong khi nó chỉ được chuyển qua trường position
.
Giải pháp duy nhất tôi nhận được là để lọc mảng, như vậy:
$author = \Author::create($attributes);
$pivotAttributes = array_only($attributes, ['position'])
\Document::find($id)->authors()->save($author,$pivotAttributes);
Có cách nào tốt hơn, để xác định cột của bảng pivot là fillable, tốt hơn nơi nào đó trong mô hình hoặc trong đó là mối quan hệ?
Nếu '$ attributes' là một Request' (hoặc' Input') Ví dụ ', bạn có thể làm' $ request-> chỉ ('vị trí ');' –