Laravel在视图中给了我未定义的变量Error Exception

时间:2014-08-20 07:13:13

标签: php laravel-4

我有这段代码:

public function lookupTransflow()
{
    //redirect back with data...perform a count on the data n display (1 fills the forms 2 for selct)

    $input=Input::get('search');

    $schools =  Transflow::where('school', 'LIKE', '%'.$input.'%')->get();

    return Redirect::route('search')->with('schools',$schools);

}

我正在尝试将结果传递给此视图:

 @if(Session::has('schools'))
            @foreach($schools as $school)
        <a href="#" class="list-group-item">{{$school->school}}</a>
           @endforeach
       @endif

请问我做错了什么。

1 个答案:

答案 0 :(得分:-1)

您似乎混淆了传递给视图的数据和传递给Redirect实例的数据 - 这些数据在请求之间闪现 - 即使您在视图中正确检查它也是如此。

我最好的猜测是,如果您没有看到如何处理实际的search路线,则需要从会话中获取schools集合才能使用它。

@if(Session::has('schools'))
    // $schools is not set, but you can get it directly from Session
    @foreach(Session::get('schools') as $school)
        <a href="#" class="list-group-item">{{$school->school}}</a>
    @endforeach
@endif

虽然正如Martin在评论中指出的那样,您可能希望在实际进入视图之前执行此操作。例如,在search路线中:

Route::get('search', function()
{
    $schools = array();
    if (Session::has('schools'))
    {
        $schools = Session::get('schools');
    }

    return View::make('search', compact('schools'));
});

如果您遵循第二个建议,则始终会设置$schools,并且您不必在视图中使用Session课程。