Laravel-将数据透视表中的值与相关表进行比较

时间:2019-03-26 10:51:42

标签: laravel eloquent

我有下表:

个用户: id |名称|

文章: id |活跃全球|版本

和数据透视表

articles_versions

user_id | article_id | article_version

在模型“用户”中,我想有一种方法来检查数据透视表中的“ article_version”字段是否与“文章”表中的“版本”字段相等。

我在“用户”模型中的当前方法:

public function checkVersion()
{
    return $this->belongsToMany(
        Article::class,
        'articles_versions',
        'user_id',
        'article_id'
    )
        ->where('version', 'articles_versions.article_version');
        //OR
        //->wherePivot('version', 'articles_versions.article_version');
}

如何传递到“ where”或“ wherePivot”值以从相关表中进行检查?

有可能做到吗?

谢谢

1 个答案:

答案 0 :(得分:0)

使用whereColumn()

public function checkVersion()
{
    return $this->belongsToMany(
        Article::class,
        'articles_versions',
        'user_id',
        'article_id'
    )->whereColumn('version', 'articles_versions.article_version');
}