【问题标题】:Access column in a laravel pivot tablelaravel 数据透视表中的访问列
【发布时间】:2018-03-05 20:55:55
【问题描述】:

当我的新应用程序到达这一行时:

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

Attach 方法运行良好,分离模式也有效。

我错过了什么吗?对我来说,它看起来就像我应该做的那样。

【问题讨论】:

  • 你能不能 dd($user->pivot);让我们知道它返回了什么?

标签: laravel laravel-5 pivot-table


【解决方案1】:

如果代码从

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

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

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

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

source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2016-11-14
    • 2014-04-25
    相关资源
    最近更新 更多