将数据从表单传递到控制器的搜索方法

时间:2018-08-14 09:37:06

标签: php laravel laravel-5

我有一个搜索框,用户将在其中输入用户名,该名称将在数据库数据中搜索,如果找到则以表格形式显示。 但是该值不会从搜索页面传递给搜索方法。

查看页面块

<form class="form-horizontal" method="POST" action="{{action('UserController@search')}}">
                    {{ csrf_field() }}
            <div class="row" style="padding-left: 1%;">
                    <div class="col-md-4">
                        <div class="form-group">
                            <label>User Name</label><span class="required">*</span>
                            <input type="text" maxlength="100" minlength="3" autofocus="autofocus" autocomplete="off" required="required" name="UserName" class="form-control"/>
                        </div>
                        <div class="form-group" style="padding-left: 5%;">
                            <button type="submit" class="btn btn-primary">Submit</button>        
                        </div> 
                    </div>                       
            </div>
    </form>

控制器代码块

public function searchDev()
    {
        return view ( 'pages.UserSearch');
    }

public function search(Request $request)
{
    $UserName = $request->input['UserName'];

    return response()->json($UserName);
    return response()->json('hello world');

    if($UserName != ""){
        $User = User::where ( 'NAME', 'LIKE', '%' . $UserName . '%' )->get (['id','NAME','CONTACT','TEMP_ADDRESS']);
        if (count ( $user ) > 0)
        {
            return view ( 'pages.UserSearch' ,compact('User'));
        }  
    }
}

search方法中,json响应为空。

路线代码

Route::get('/UserSearch','UserController@searchDev');
Route::post('/UserSearch','UserController@search');

表结构图 enter image description here

2 个答案:

答案 0 :(得分:1)

request对象上,input是一个方法,而不是数组。

要访问表单数据,您应该执行以下操作:

$request->input('UserName');

有关从请求对象中检索输入的更多信息,请参阅documentation

答案 1 :(得分:1)

获取输入值 使用一些简单的方法,您可以访问Illuminate\Http\Request实例中的所有用户输入,而不必担心该请求使用了哪个HTTP动词。不管HTTP动词如何,均可使用input方法检索用户输入:

$UserName = $request->input('UserName');

$UserName = $request->UserName;

引用 https://laravel.com/docs/5.6/requests#retrieving-input