【问题标题】:HasMany relationship attach model without saving directlyHasMany 关系附加模型,无需直接保存
【发布时间】:2014-12-01 05:34:41
【问题描述】:

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

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 是数据库中的现有记录?
  • 我想将用户对象传递给一个验证器类,该类在保存之前验证所有内容。

标签: laravel laravel-4 eloquent


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多