Laravel 拉威尔储蓄有很多关系
我使用的是Laravel&Ardent,在hasMany关系中存在一些问题 我有两节课 工作顺序:Laravel 拉威尔储蓄有很多关系,laravel,eloquent,laravel-5.2,ardent,Laravel,Eloquent,Laravel 5.2,Ardent,我使用的是Laravel&Ardent,在hasMany关系中存在一些问题 我有两节课 工作顺序: protected $table = 'workorder'; protected $primaryKey = 'workorder_id'; public static $relationsData = [ 'dates' => array(self::HAS_MANY, 'App\WorkOrderDate', 'foreignK
protected $table = 'workorder';
protected $primaryKey = 'workorder_id';
public static $relationsData = [
'dates' => array(self::HAS_MANY, 'App\WorkOrderDate', 'foreignKey' => 'workorder_id'),
];
工作日期:
protected $table = 'workorder_date';
protected $primaryKey = 'date_id';
public static $relationsData = array(
'workorder' => array(self::BELONGS_TO, 'App\WorkOrder')
);
保存我的Workorder(工作正常)后,我尝试通过执行以下命令来保存日期模型的集合:
$workorder->dates()->saveMany($myDateCollection->all());
但它没有运行日期插入,也没有给我任何错误。我打开了查询日志记录,看起来Laravel正在尝试运行更新而不是插入。我在这里的关系定义不正确吗?我正在根据用户输入对我的数据集进行水合,当你水合一个模型时,Laravel假设该模型已经存在。事实证明这不是我想做的 详情如下:
我不确定L5是否仍然是这样……但回到L3和4,我记得每当我想保存到关系时,我必须先创建它。只有这样,才能推动关系更新。那是一只威德虫。我不久前写了一个关于推送代码的答案,您可以看到,只有当关系已经有了相应的条目时,它才会保存。但是,L5可能完全不同。我只是想指出,这会让人非常困惑,因为文档在标题“插入相关模型”下记录了saveMany方法:还有$myDateCollection->all()返回什么。阵列?模型集合?$myDateCollection是WorkOrderDate模型的集合。Collection->all()返回一个模型数组。我只在belongToMany中看到saveMany()方法,或者在L5关系中看到HasOneOrMany类。不在BelongsTo,也没有很多。也许这与此有关??我真的不知道,只是指出而已