У меня есть модель Asset
с documents() { $this->hasMany(Document::class); }
через таблицу data_asset_document
.Я расширяю Asset
на несколько моделей, одна из которых - Equipment
.В моем сеансе для оборудования я пытаюсь создать документ, связанный с записью оборудования:
$asset = Equipment::create([...]);
$document = Document::create([
'name' => "$type Purchase Order",
'tracking_number' => app('incrementer')->current()
]);
$asset->documents()->save($document);
Eloquent создает такой запрос:
update `data_document` set `equipment_id` = 1, `data_document`.`updated_at` = 2019-09-20 14:39:48 where `id` = 1
Это, очевидно, неверно, поскольку data_document
не имеет столбца equipment_id
(Документы "принадлежат" нескольким моделям помимо Актива).Как переписать Asset :: documents, чтобы получить правильное сопоставление даже в его расширениях?Или мне нужно сохранить мой документ с помощью средства, отличного от Asset :: documents?