Laravel под-отношения - PullRequest
       5

Laravel под-отношения

0 голосов
/ 17 февраля 2019

У меня есть следующие модели:

class Recipe extends Model
{

    public function parts() {
        return $this->hasMany('App\RecipePart');
    }
}

class Ingredient extends Model
{
    protected $fillable = [
            'name','image'
        ];
}

class RecipePart extends Model
{
    public $timestamps = false;

    public function ingredients()
    {
        return $this->hasMany('App\RecipePartIngredient');
    }
}

В моем контроллере я хочу вернуть рецепт со всеми частями рецепта, принадлежащими ему, и все ингредиенты принадлежат каждой части рецепта.Следующий код работает, но ...:

return Recipe::with('parts.ingredients')
            ->where('id',$request->id)->first();

Работает, мой parts.ingredients возвращает данные в моей таблице recipe_part_ingredients, что в порядке, но я хочу, чтобы для каждого ингридиента ингредиента - возвращался ингредиентинформация из моей ingredients таблицы.(имя, изображение).

Есть идеи, как мне это сделать?Я попытался добавить следующий код в мой RecipePartIngredient, но безуспешно:

public function ingredient() {
        return $this->hasOne('App\Ingredient');
    }

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Как насчет этого:

return Recipe::with('parts.ingredients')
    ->with('parts.ingredients.ingredient')
    ->find($request->id);
0 голосов
/ 17 февраля 2019

Вы должны использовать

метод, относящийся к , например:

public function ingredient() {
    return $this->belongsTo('App\Ingredient');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...