获取最近更新的hasMany关系的ID

时间:2020-03-29 14:41:55

标签: laravel eloquent laravel-6

我正在一个项目中,我需要在控制器中更新两个相关模型。在下面,我为一个可以创建多个交易的用户创建了一个交易记录。之后,我需要访问最近创建的事务的id,但是由于那具有hasMany关系,所以laravel抛出错误。

UserModel

public function transaction()
{
    return $this->hasMany('App\Model\Transaction');
}

控制器

    $user->transaction()->create([
        ...
        ...
    ])->save();

    $devUnit = new DevUnit();
    $devUnit->transaction_id = $user->transaction()->id; //this throws an error

错误

Undefined property: Illuminate\Database\Eloquent\Relations\HasMany::$id

1 个答案:

答案 0 :(得分:2)

对不起,完全误读了您的问题。

create方法的结果保存到变量中,以访问具有ID的填充模型。

$transaction = $user->transaction()->create([
    //
]);

$timeshareUnit = new TimeshareUnit();
$timeshareUnit->transaction_id = $transaction->id;