如何从控制器获取值以在laravel中查看?

时间:2017-06-06 14:59:46

标签: php laravel laravel-5

我有一个带有文本输入字段和提交按钮的简单输入表单。我试图从单击提交按钮后在同一页面上再次显示输入字段的值。到目前为止,laravel总是会抛出一个错误,即变量未定义。

路线:

Route::get('/find/names', "FindController@get_name")->name('names');

控制器

 public function get_name(){
         $name = Input::get('name_by_user');
         return $name;
    }

查看

        <form role="form" method="GET">
                    <div class="row">
                        <div class="form-group">
                            <div class="input-group">
                                <input type="text" name="name_by_user"/>
                                <span class="input-group-btn">
                                    <button class="btn search-button" type="submit">
                                    <span aria-hidden="true">
                                    <span>Search</span>
                                    </button>
                                </span>
                                </span>
                            </div>
                        </div>
                    </div>           
                </form>

  display name after submitting:  {{$name}}

3 个答案:

答案 0 :(得分:2)

在控制器内为路径生成视图时,可以在函数中执行以下操作,以根据数据是否存在来返回包含数据的视图。

public function showNameView() {

    if(is_null(Input::get('name_by_user'))
    {

        return view('my.view')->with(['name' => Input::get('name_by_user')]);

    }
    else
    {

        return view('my.view')->with(['name' => Input::get('name_by_user')]);

    }

}

答案 1 :(得分:1)

您需要返回相同的视图:

from itertools import groupby

def remove_consecutive_duplicates(iterable):
    return [v for v, g in groupby(iterable)]

或者你可以重定向回来:

public function get_name(Request $request)
{
     return view('same.view', ['name' => $request->name]);
}

显示名称,如使用会话数据:

return redirect()->back()->with('name', $request->name);

答案 2 :(得分:1)

我会做这样的事情

<强>路线

Route::name('names')->get('/find/names', "FindController@get_name");

<强>控制器

public function get_name(){
   $collection = Input::all();
   $name = $collection->pluck('name_by_user');
   return view('view_file_in_resources', compact('name'));
}

现在,您的视图中会有一个$names集合。

但是如果您只想从一行获取结果,那么您的控制器应如下所示:

public function get_name($name){
   $name = Input::where('name_by_user', $name)->get();
   return view('view_file_in_resources', compact('name'));
}

你的路线档案

Route::name('names')->get('/find/names/{name}', "FindController@get_name");