Laravel whereHas 在具有相同属性的 M2M 上

我有两个模型,word和meaning,处于多对多关系中。


型号含义:


public function words(){

        return $this->belongsToMany(Word::class);

}

示范词:


public function meanings(){

        return $this->belongsToMany(Meaning::class);

}

我需要找到所有与他们自己的名字相同的词的含义。我试过:


$meanings = Meaning::whereHas('word', function ($query) { 

               $query->where('meaning.name', 'word.name'); 

            })->get();

但这会搜索字面上称为"word.name"的含义。任何的想法 ?谢谢!


慕森王
浏览 105回答 1
1回答

30秒到达战场

在这种情况下有一个特殊的“where”,它是“whereColumn”,这意味着在两列之间进行比较:$meanings = Meaning::whereHas('word', function ($query) {                 $query->whereColumn('meaning.name', 'word.name');              })->get();更多详细信息: https ://laravel.com/docs/7.x/queries#where-clauses
打开App,查看更多内容
随时随地看视频慕课网APP