Laravel 5.x whereHas многие-ко-многим с дополнительной колонке сводной

140
6

У меня есть своя таблица со множеством ко многим, созданная между Рецептами и Ингредиентами. Для конкретного Ингредиента, я хочу список Recipies

$ingredientID = 99;

$recipies = Recipe::whereHas('ingredients', function ($q) use ($ingredientID) {
$q->where('id', '=', $ingredientID);
})->get();

И это работает. Но в моем случае есть дополнительный столбец в сводной таблице для "описания". Например, конкретный рецепт "cookie" и соединение ингредиентов "яйцо" могут иметь описание: "убедитесь, что яйца действительно свежи для этого рецепта".

Итак, как мне вернуть этот дополнительный столбец столбцов с этим запросом? Я попытался войти в файлы модели и добавить вызовы "withPivot":

public function ingredients() 
{
return $this->belongsToMany('App\Ingredient')->withPivot("description");
}

Но это не работает. Любая идея, как я могу запугать мой запрос whereHas, чтобы кашлять над этим дополнительным столбцом таблицы поворота?

спросил(а) 2021-01-19T15:38:00+03:00 6 месяцев, 2 недели назад
1
Решение
118

Чтобы получить доступ к столбцу description вы должны сделать что-то вроде:

$recipies->first()->ingredients->first()->pivot->description;

ответил(а) 2021-01-19T15:38:00+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема