Я использую Laravel & Ярость и проблемы с сохранением через hasMany отношения.Laravel save hasMany relationship
У меня есть два класса.
лицам получать:
protected $table = 'workorder';
protected $primaryKey = 'workorder_id';
public static $relationsData = [
'dates' => array(self::HAS_MANY, 'App\WorkOrderDate', 'foreignKey' => 'workorder_id'),
];
WorkOrderDate:
protected $table = 'workorder_date';
protected $primaryKey = 'date_id';
public static $relationsData = array(
'workorder' => array(self::BELONGS_TO, 'App\WorkOrder')
);
после сохранения моего наряда (который прекрасно работает), я пытаюсь сохранить коллекцию современных моделей, выполнив:
$workorder->dates()->saveMany($myDateCollection->all());
Но это не работает с вставкой даты, и это не дает мне никаких ошибок. Я включил ведение журнала запросов, и похоже, что Laravel пытается запустить обновление вместо вставки. Я неправильно определил свои отношения здесь?
Я не уверен, если это все-таки дело в L5 .... но обратно в L3 и 4 я помню, что всякий раз, когда я хотел сохранить отношения, я должен был создать это сначала. Только после этого будет толчок к обновлению работы отношений. Это была странная ошибка. Некоторое время назад я написал ответ, который переместил код push, и вы можете видеть, что он будет сохраняться только в том случае, если отношение уже имеет соответствующую запись. http://stackoverflow.com/questions/17035682/eloquent-push-and-save-difference/17035768#17035768, но опять же, L5 может быть совершенно другим. Просто подумайте, что это так. – KyleK
Это было бы очень запутанно, так как документы отмечают метод saveMany под заголовком «Вставка похожих моделей»: https://laravel.com/docs/5.2/eloquent-relationships#inserting-related-models –
также, что такое $ myDateCollection-> all() return. массив? сбор моделей? – KyleK