我正在一个项目中,我需要在控制器中更新两个相关模型。在下面,我为一个可以创建多个交易的用户创建了一个交易记录。之后,我需要访问最近创建的事务的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
答案 0 :(得分:2)
对不起,完全误读了您的问题。
将create
方法的结果保存到变量中,以访问具有ID的填充模型。
$transaction = $user->transaction()->create([
//
]);
$timeshareUnit = new TimeshareUnit();
$timeshareUnit->transaction_id = $transaction->id;