我有几个使用继承的刀片页面,我试图在一个页面中显示产品列表。但是,当对象传递给视图时出现了问题,并导致应用程序崩溃。Laravel:无法将变量传递到视图
我得到的错误是Undefined variable: batteries
。
With 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()'方法的路由将导致此错误,因为没有$ batteries变量被发送到视图。但没有你的路线,我们不知道我在做什么... – 2014-11-14 13:22:34
我不明白你想要返回''返回Response :: json(['view'=> $ view]);'。你是否试图返回JSON或HTML视图? – itachi 2014-11-14 16:13:39