在Laravel中创建模型实例时,我似乎对如何自动保存相关模型感到困惑 . 考虑:
用户模型:
<?php
// file: User.php
class User extends Eloquent
{
public function role()
{
$this->hasOne('Role');
}
}
榜样:
<?php
// file: Role.php
class Role extends Eloquent
{
public function user()
{
$this->belongsTo('User');
}
}
现在假设我想创建一个新用户并为其分配一个角色 . 如果我在保存用户后设置角色关系,很容易让关联工作 . 例如,这很好用:
$user = new User();
$user->name = 'Bobby';
$user->save();
$role = new Role();
$role->type = "Super Hero";
$user->role()->save($role);
但是,如果我想 push
或 cascade
保存,则无法分配foreignKey . 我只想 save()
一次,并通过级联保存关系 . 例如,这不起作用:
$user = new User();
$user->name = 'Bobby';
$role = new Role();
$role->type = "Super Hero";
$user->role = $role; // or $user->role()->save($role);
$user->save(); // push()?
这有点类似于Doctrine 2处理 persisting
的方式 . 是否有可能在Eloquent中同时创建两者?