在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);

但是,如果我想 pushcascade 保存,则无法分配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中同时创建两者?