Laravel 4 Laravel无法将变量传递给视图
我的routes.php文件中有以下代码:Laravel 4 Laravel无法将变量传递给视图,laravel-4,Laravel 4,我的routes.php文件中有以下代码: Route::get('org', function() { $org = Org::all(); return View::make('org.index') ->with('org', $org) ->with('category', 'Org'); }); @if($category == 'Org') @foreach($org as $organization)
Route::get('org', function()
{
$org = Org::all();
return View::make('org.index')
->with('org', $org)
->with('category', 'Org');
});
@if($category == 'Org')
@foreach($org as $organization)
...
@endforeach
@endif
当我在应用程序中访问/org时,我收到以下错误:
ErrorException
Undefined variable: category (View: /var/www/html/.../app/views/org/index.blade.php)
我的index.blade.php文件中有以下代码:
Route::get('org', function()
{
$org = Org::all();
return View::make('org.index')
->with('org', $org)
->with('category', 'Org');
});
@if($category == 'Org')
@foreach($org as $organization)
...
@endforeach
@endif
如果我删除If语句(它引用$category变量),一切正常
为什么视图中未定义$category
编辑:
这相当令人尴尬,但我将描述这个问题,以防其他人发现它有用 我的routes.php文件中有很多注释和重复代码,因为这是我第一次使用Laravel,我正在测试。事实证明,我有一个上面路由的副本(虽然更接近routes.php文件的底部),它没有将$category变量传递给视图。我移除了它,这解决了我的问题 我的印象是,如果有重复的路线,将使用第一个描述的路线。尝试以下方法:
Session::get('category')
如果要传递到视图的变量不止一个,则可以使用以下方法:
Route::get('org', function()
{
$org = Org::all();
$category = 'Org';
return View::make('org.index', compact('org', 'category'));
});
或
Route::get('org', function()
{
$data = [];
$data['org'] = Org::all();
$data['category'] = 'Org';
return View::make('org.index', $data);
});
路由::获取('org',函数()
{
$data=[];
$data['org']=org::all();
$data['category']='Org';
返回视图::make('org.index',$data);
});
这相当令人尴尬,但我将描述这个问题,以防其他人发现它有用 我的routes.php文件中有很多注释和重复代码,因为这是我第一次使用Laravel,我正在测试。事实证明,我有一个上面路由的副本(虽然更接近routes.php文件的底部),它没有将$category变量传递给视图。我移除了它,这解决了我的问题 我的印象是,如果有重复的路线,将使用第一个描述的路线