Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.02.2015 11:52:20

Вывод данных из всех таблиц.

Появился еще 1 вопрос.
Имеется 2 таблицы:
1. таблица рецептов (recipes)
- id  -  PK
- dishName
....
и так далее

2. таблица ингредиентов (ingredients)
- ingredientId  -  PK
- dishId
.....
и так далее

в модели рецептов прописана связь этих таблиц по полю dishID. Т.е. к одному рецепту id может относиться несколько ингредиентов. recipes.id->ingredients.dishId

public function ingredients(){
        return $this->hasMany('Ingredient', 'dishId');
    }

Чуть чуть не пойму как правильно выводить, скажем, последние 10 рецептов с ингредиентами?
В контроллере написано:

public function index()
	{
		$recipeCards = Recipe::paginate(10); // страничный вывод
		$ingredients = Recipe::find(1)->ingredients; // как написано в документации
		return View::make('home', array('recipeCards' => $recipeCards, 'ingredients' => $ingredients));
	}

и в виде home все это дело выводится.
Загвоздка в выводе ингредиентов. во всех записях они одинаковые. что нужно указать вместо find(1), чтоб для каждого рецепта выводились его ингредиенты.
По документации не понял.

Не в сети

#2 05.02.2015 13:24:20

Re: Вывод данных из всех таблиц.

$recipes = Recipe::with('ingredients')->paginate(10);
View::make('home', array('recipes' => $recipes));
@foreach($recipes as $recipe)

	<h1>{{ $recipe->title }}</h1>

	<h2>Ingredients</h2>
	<ul>
		@foreach($recipe->ingredients as $ingredient)
			<li>{{ $ingredient->title }}</li>
		@endforeach
	</ul>

@endforeach

{{ $recipe->links() }}

Не в сети

Подвал раздела