Laravel 有许多关系附加模型而不直接保存

Laravel 有许多关系附加模型而不直接保存,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,以下只是一个示例:以以下两个模型及其关系为例: User => hasMany('Address', 'user_id') Address => => belongsTo('User', 'user_id') 我希望能够链接到一个地址与用户没有直接保存它。 比如: $user = new User(); $user->name = "John"; $address1 = new Address(); $address1->street = "Foo street

以下只是一个示例:以以下两个模型及其关系为例:

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()
所以这不同于$user->addresses()->saveMany([$address1,$address2]);
希望您能给我一个优雅的解决方案。

您应该区分验证操作和保存操作。可以通过在对象控制器中创建不同的方法来实现这一点。一个用于验证,您将检查重复项、类似项等,然后如果验证通过,您应重定向到将创建和保存对象的存储路径。

为什么要使用
$address1=new Address()如果你不打算保存它?或者Foo street是数据库中的现有记录吗?我希望将用户对象传递给验证程序类,该类在保存之前验证所有内容。