Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔储蓄有很多关系_Laravel_Eloquent_Laravel 5.2_Ardent - Fatal编程技术网

Laravel 拉威尔储蓄有很多关系

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

我使用的是Laravel&Ardent,在hasMany关系中存在一些问题

我有两节课

工作顺序:

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,也没有很多。也许这与此有关??我真的不知道,只是指出而已