当我的新应用程序进入此行时:
$user_game = ( $user->games->count() == 0 ) ? $this->start( $game, $user ) : $user->pivot->data;
我收到以下错误:
ErrorException(E_NOTICE)
尝试获取非对象的属性
看来$user->pivot->data
不是我的数据透视表中的属性。
在我的用户班中,我有:
public function games(){
return $this->belongsToMany( Game::class )
->withPivot( [ 'data', 'finished' ] );
}
在我的游戏课上,我有:
public function users(){
return $this->belongsToMany( User::class )
->withPivot( [ 'data', 'finished' ] );
}
附加方法工作正常,分离模式也有效。
我错过了什么吗?对我来说,看起来它完全按照我的意愿完成。
答案 0 :(得分:0)
如果代码从
更改->withPivot( [ 'data', 'finished' ] );
到
->withPivot('data', 'finished');
使用多对多关系时,save方法接受一组额外的中间表属性作为其第二个参数:
App\User::find(1)->roles()->save($role, ['expires' => $expires]);