Laravel: неопределенное смещение в представлении index.blade.php
В моих маршрутах этот маршрут определен как:
// app/routes.php
Route::resource('CharacterController');
Соответствующий метод в контроллере:
// app/controllers/CharacterController.php
public function index(){
$characters = Character::all();
$houses = House::all();
return View::make('characters.index')->with(array('characters'=>$characters, 'houses' => $houses));
}
Наконец, по мнению:
// app/views/characters/index.blade.php
#this fires an error:
{{ $houses[$characters->house_id]->name }}
# at the same time this gives correct result:
{{ $houses[1]->name }}
# and this IS equal to 1:
{{ $characters->house_id }}
1 ответ
Решение
Вы не можете использовать id
как индекс массива для доступа к объекту с заданным идентификатором.
Поскольку у вас есть Eloquent Collection, вы можете использовать его различные функции. Одним из них является find()
для получения одного элемента id
{{ $houses->find($characters->house_id)->name }}