Laravel 5.x, где есть многие ко многим с дополнительной сводной колонкой - PullRequest
0 голосов
/ 16 мая 2018

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

$ingredientID = 99;

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

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

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

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

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

1 Ответ

0 голосов
/ 16 мая 2018

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

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