У меня есть пара лезвийных страниц с использованием наследования, и я пытаюсь показать список продуктов на одной странице. Однако, когда объект передается в представление, что-то идет не так, и это приводит к сбою приложения.Laravel: не может передать переменную на вид
Ошибка, которую я получаю, это Undefined variable: batteries
.
С isset($batteries)
Я тестировал, что действительно переменная не доходит до представления.
Вот код:
/* controller */
class HomeController extends \BaseController {
public function index() {
$view = View::make('home.index')->render();
return Response::json(['view' => $view]);
}
public function main() {
$batteries = Battery::all();
$view = View::make('home.main', compact('batteries'))->render();
return Response::json(['view' => $view]);
}
}
Просмотров:
<!-- home/index.blade.php -->
@extends('layouts.master')
@section('content')
@include('home.main')
@stop
<!-- home/main.blade.php -->
<ul class="list-group">
@foreach ($batteries as $battery)
<li class="list-group-item">$battery->name</li>
@endforeach
</ul>
Что не так? Почему переменная не определена?
Редактировать
Route::get('/', function() {
return View::make('home.index');
});
Route::group(['before' => 'ajax'], function() {
Route::get('/home/main', ['as' => 'home.main', 'uses' => '[email protected]']);
});
Маршрут, указывающий на метод 'index()', вызывает эту ошибку, так как переменная $ battery не отправляется на просмотр. Но без вашего маршрута мы не знаем, что я делаю ... –
Я не понимаю, что вы пытаетесь вернуть с помощью 'return Response :: json (['view' => $ view]);'. вы пытаетесь вернуть json или html-представление? – itachi