【问题标题】:passing data from form to search method of controller将数据从表单传递到控制器的搜索方法
【发布时间】:2019-01-21 03:04:51
【问题描述】:

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

查看页面块

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

表结构图片

【问题讨论】:

  • 可以转储请求的内容吗?
  • 将 $request->['UserName'] 更改为 $request->UserName;
  • 它应该是对象而不是 $UserName = $request->input['UserName'];这个到 $UserName = $request->UserName;

标签: php laravel laravel-5


【解决方案1】:

检索输入值 使用一些简单的方法,您可以访问来自 Illuminate\Http\Request 实例的所有用户输入,而无需担心请求使用了哪个 HTTP 动词。不管 HTTP 动词是什么,输入法都可以用来检索用户输入:

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

$UserName = $request->UserName;

参考 https://laravel.com/docs/5.6/requests#retrieving-input

【讨论】:

  • 我也面临 eloquent 查询的问题。此查询不返回任何内容。请帮忙!!!
  • @nischalinn.can you 通过键入添加它,因为我无法在我的系统中查看图像
  • NAME VARCHAR(150) utf8mb4_unicode_ci,这是搜索字段。谢谢!
  • @nischalinn.looks like each think good.just echo $userName as well as $User
【解决方案2】:

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

要访问表单数据,您应该这样做:

$request->input('UserName');

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

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2021-12-11
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多