Laravel 4 Laravel无法将变量传递给视图

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)

我的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)
     ...
    @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变量传递给视图。我移除了它,这解决了我的问题

我的印象是,如果有重复的路线,将使用第一个描述的路线