Laravel 5 Blade模板未定义变量

时间:2019-04-11 12:54:19

标签: php laravel laravel-5 laravel-5.8

我进行了搜索,希望显示结果,但是无法将变量传达给视图, 尽管我在控制器中指定了它。

我的视角代码:

<div class="search col-md-6">
    <p>
        Найти сотрудника по id
    </p>
    <form action="{{route('searchID')}}" class="search-id" method="GET">
        <div class="row">
            <div class="col-xs-10">
                <div class="form-group">
                    <input class="form-control" name="id" required="" type="text" value="{{ old('id') }}">
                    </input>
                </div>
            </div>
            <div class="col-xs-2">
                <div class="form-group">
                    <input class="btn btn-info" type="submit" value="Искать">
                    </input>
                </div>
            </div>
        </div>
        {{$result}}
    </form>
    <div>
    </div>
</div>

我的路线:

 Route::match(['get', 'post'], 'searchID', 'SearchController@indexID')->name('searchID');

我在控制器中的方法:

public function indexID(Request $request, View $view)
{
    //$message= "Сотрудник не найден";
    $id = $request->input('id');
    dump($id);
    $result = Staff::where('public_id', $id)->get();

    if ($result == null) {
        //dump($message);
        return redirect()->back()->withInput($id);
    } else {
        dump($result);
        return view('addworker')->with('result', $result);
    }
}

但是我不断收到错误消息:未定义的变量:结果

我尝试过:

return view('addworker')->with($result);

return view('addworker',$result);

return view('addworker', ['result', $result]);

这些都没有帮助我,我不知道该怎么办

如何仅在处理完控制器后使模板访问此变量?

3 个答案:

答案 0 :(得分:3)

您可以使用紧凑型

return view('addworker', compact('result'));

compact-创建包含变量及其值的数组

答案 1 :(得分:2)

希望这对您有帮助

return view('addworker', ['result' => $result]);

答案 2 :(得分:1)

您使用了错误的语法将变量发送到视图,很多方法可以做到这一点:

您可以使用compact函数:

return view('addworker', compact('result'));

您可以使用with()方法:

return view('addworker')->with('result', $result);

或者:

return view('addworker', ['result' => $result]);

您还可以查看官方文档:click here