2017-05-11 75 views
0

我想知道如何使它正確。比方說,我們有2種型號:Laravel模型1-n Instanciation

  • Object1
  • 對象2

這兩者之間的關係是1-N:

  • Object1的hasMany對象2
  • 對象2屬於關聯Object1

注意的是,在DB我們所遵循的默認屬性名稱(object1_id,...)

當我想要實例:

$object1 = new Object1; 
$object2_1 = new Object2; 
$object2_2 = new Object2; 

如何節省Object1到之前這兩個對象2到Object1關聯D B?有沒有辦法在Object1到數據庫之前不保存,然後使用Object1的ID來附加這兩個Object2?

喜歡的東西:

$object1->add?($object2_1); 
$object1->add?($object2_2); 
$object1->save(); 

知道我們想要的是在保存(),它會添加到數據庫中相應的對象2的藏漢。

回答

1

首先,正確的關係是:

  • Object1的hasMany對象2
  • 對象2屬於關聯Object1

然後,你可以做這樣的事情:

$object1 = Object1::create([]); 
$object2_1 = new App\Object2([]); 
$object2_2 = new App\Object2([]); 

然後附加到$ object1是這樣的:

$object1->objects2()->saveMany([$object2_1, $object2_2]);