在laravel枢轴表中访问列

时间:2018-03-05 20:55:55

标签: laravel laravel-5 pivot-table

当我的新应用程序进入此行时:

$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' ] );
}

附加方法工作正常,分离模式也有效。

我错过了什么吗?对我来说,看起来它完全按照我的意愿完成。

1 个答案:

答案 0 :(得分:0)

如果代码从

更改
->withPivot( [ 'data', 'finished' ] );

->withPivot('data', 'finished');
  

使用多对多关系时,save方法接受一组额外的中间表属性作为其第二个参数:

App\User::find(1)->roles()->save($role, ['expires' => $expires]);

source