Laravel где на M2M есть такой же атрибут - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть две модели, слово и , означающее , в отношении «многие ко многим».

Значение модели:

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" . Есть идеи ? Спасибо!

1 Ответ

1 голос
/ 18 апреля 2020

есть специальное 'где' для этого случая, это 'гдеColumn', это где предназначено для сравнения двух столбцов:

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

подробнее о: https://laravel.com/docs/7.x/queries#where -clauses

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...