【发布时间】:2015-01-11 21:33:38
【问题描述】:
我有几个使用继承的刀片页面,我试图在一个页面中显示产品列表。但是,当将对象传递给视图时,出现问题并导致应用程序崩溃。
我得到的错误是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' => 'HomeController@main']);
});
【问题讨论】:
-
指向
index()方法的路由会导致这个错误,因为没有$batteries变量被发送到视图。但是没有你的路线,我们不知道我在做什么...... -
我不明白
return Response::json(['view' => $view]);想要返回的内容。您是要返回 json 还是 html 视图?
标签: laravel laravel-4 laravel-routing