我想做的似乎应该是简单的,但我不能弄清楚。我真正想要的是一种简单的方法,将一个模型添加到属于另一个模型的数据库中。我知道这是令人困惑的措辞,所以我将说明。
我有一个用户模型和一个地址模型。我定义了一个id为1的用户,我想给这个用户添加一个地址。我可以像这样添加地址:
$a = new App'Address;
$a->user_id = 1;
$a->line_1 = '1234 Something Rd.';
$a->city = 'Fort Worth';
$a->state = 'TX';
...
但是如果我能直接说:
就简单多了$u = App'User::first();
$u->address->create([array of options]); /* Or something */
我的问题是:
- 这可能吗?
- 我该怎么做?
- 这叫什么?它有名字吗?
谢谢!
$u = App'User::first();
App'Address::create(['user_id'=>$u->id, etc]);
或
$address = App'Address::create([options]);
$u->address()->save($address);
不要忘记这样设置Model Address.php:
protected $fillable = ['user_id','etc'];
不能调用
$u->address->create
因为User还没有地址模型,方法将返回NULL,所以->create将失败
可以,您可以插入相关模型:
$user = App'User::first();
$address = App'Address::create($attributes);
$user->address()->associate($address);