2014-10-06 54 views
1

下面就是一個例子:採取以下兩種模式與它們之間的關係:的hasMany關係連接模式,而無需直接保存

User => hasMany('Address', 'user_id') 
Address => => belongsTo('User', 'user_id') 

我希望能夠到一個地址與用戶提供了直接將其保存鏈接。 類似:

$user = new User(); 
$user->name = "John"; 

$address1 = new Address(); 
$address1->street = "Foo street"; 

$address2 = new Address(); 
$address2->street = "Bar street"; 

$user->addresses()->push($address1); 
$user->addresses()->push($address2); 

//do some stuff to maybe validate some things or pass the user object to some other controllers that handels it 

//Save the user and the addresses here. 
$user->save() 

所以這個不同之處在於$用戶>地址() - > saveMany([$地址1,$地址2]); 希望你有人給我一個優雅的解決方案。

+1

爲什麼要做一個'$ address1 = new Address();'如果你不打算保存它?或者是Foo街道里的現有記錄? – 2014-10-08 11:10:35

+0

我想傳遞給用戶對象一個驗證器類,它在保存之前驗證所有內容。 – Boedy 2014-10-08 11:25:49

回答

-1

您應該區分您的驗證操作和保存操作。您可以通過在對象控制器中創建不同的方法來實現此目的。一個用於驗證您將檢查重複項,類似項等的驗證,然後如果驗證通過,您應該重定向到您將創建並保存對象的商店路線。