Laravel无法传递变量进行查看

时间:2014-06-02 01:07:16

标签: laravel-4

我在routes.php文件中有以下代码:

Route::get('org', function()
{
    $org = Org::all();
    return View::make('org.index')
        ->with('org', $org)
        ->with('category', 'Org');
});

当我在我的应用程序中访问/ org时,我收到以下错误:

ErrorException
Undefined variable: category (View: /var/www/html/.../app/views/org/index.blade.php)

我的index.blade.php文件中包含以下代码:

@if($category == 'Org')
    @foreach($org as $organization)
     ...
    @endforeach
@endif

如果我删除if语句(引用$ category变量),一切正常。

为什么在视图中未定义$category

修改

这是相当尴尬的,但我会描述问题,以防其他人发现它有用。

我的routes.php文件中有很多注释和重复的代码,因为这是我第一次使用Laravel并且我正在测试。事实证明我有上述路由的副本(尽管更接近routes.php文件的底部)没有将$ category变量传递给视图。我删除了它,这解决了我的问题。

我的印象是,如果有重复的路线,将使用首先描述的路线。

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

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);
});

答案 1 :(得分:0)

这是相当尴尬的,但我会描述问题,以防其他人发现它有用。

我的routes.php文件中有很多注释和重复的代码,因为这是我第一次使用Laravel并且我正在测试。事实证明我有上述路由的副本(尽管更接近routes.php文件的底部)没有将$ category变量传递给视图。我删除了它,这解决了我的问题。

我的印象是,如果有重复的路线,将使用首先描述的路线。