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

Laravel whereHas on M2M having same attribute

我有两个模型,wordmeaning,处于多对多关系中。

型号含义:

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"。 任何想法 ?谢谢!

这个案例有一个特殊的'where',就是'whereColumn',这个 用于比较两列的位置:

$meanings = Meaning::whereHas('word', function ($query) { 
               $query->whereColumn('meaning.name', 'word.name'); 
            })->get();

更多详情: https://laravel.com/docs/7.x/queries#where-clauses