Laravel拯救了Eloquent和人际关系

时间:2016-07-20 16:52:27

标签: php laravel laravel-5 eloquent

我将关系添加到模型中。结构如下:

  

Structure模型hasMany Managers。每个Manager hasMany Employees

所以我使用以下代码完成了这项工作:

$structure->name = "Something";
$manager1 = new Manager;
$manager2 = new Manager;

$manager1->name = "Man One";
$manager2->name = "Man Two";

$emp1 = new Employee;
$emp2 = new Employee;
$emp3 = new Employee;

$emp1->name....
...
....

$manager1->add($emp1);
$manager1->add($emp2);
$manager2->add($emp3);

$structure->add($manager1);
$structure->add($manager2);

.... //Some calculations & necessary processing to fill up other properties of $structure.

///Now I have to save $structure..
$structure->push()

但是由于显而易见的原因,它返回$manager需要外键值(structure_id)的错误。 $structure->managers()->save()确实有帮助,但保存所有关系及其关系非常麻烦。

因此我需要知道一次保存整个结构模型的方法。

1 个答案:

答案 0 :(得分:0)

您可以使用saveMany(您必须传递一个Manager对象数组):

$structure->managers()->saveMany(array($managers));

或者(您必须传递一个数组数组,其中对象数据在Manager模型中的$ fillable数组中声明):

$structure->managers()->createMany(array($managersData));
$structure->save();