代码之家  ›  专栏  ›  技术社区  ›  Solivan

laravel form with get方法参数错误

  •  0
  • Solivan  · 技术社区  · 6 年前

    您好,谢谢您的回复。我有这样一种形式:

        <form action="{{route('searchpages')}}" method="get">
        <input class="form-control" name="query"  placeholder="search" type="text">
            <button type="submit" class="btn btn-primary">search</button>
        </form>
    

    和路线:

    Route::get('/searchpages','PageController@searchpages')->name('searchpages');
    

    和控制器:

        public function searchpages(Request $request){
            $query= $request->get('query');
    ...
    

    windows本地主机中的一切正常,例如,当用户键入 apple ,则, $query 变量将为 苹果 。 但在共享的房子里 $查询 变量始终为 null !!! 在本地主机中:

    +request: ParameterBag {#50 ▼
        #parameters: array:1 [▼
          "query" => "apple"
        ]
      }
    

    但在共享主机中:

      +request: ParameterBag {#50 ▼
        #parameters: array:1 [▼
          "/searchpages" => null
        ]
      }
    

    搜索结果URL为:

    http://example.com/searchpages?query=apple
    

    我想这可能是主机出了什么问题。喜欢 .htaccess 或你觉得怎么样? 最大的问题是本地主机和在线主机之间的差异,这会产生虚拟bug!

    3 回复  |  直到 6 年前
        1
  •  0
  •   kristi tanellari    6 年前

    别忘了添加

    {{ csrf_field() }}
    

    如果您不确定,下一个错误将是令牌不匹配异常

    并且不要改变投递路线或方法。它应该得到。还可以尝试执行以下操作: $query= request('query');

        2
  •  0
  •   kristi tanellari    6 年前

    请尝试使用input()函数获取变量

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

    并且不要改变投递路线或方法。它应该得到。 还可以尝试执行以下操作: $query= request('query');

        3
  •  0
  •   Solivan    6 年前

    最后,在支付多个小时后,问题按照以下方式解决: this 我刚刚替换了:

    RewriteRule ^(.*)$ index.php?/$1 [L]
    

    使用:

    RewriteRule ^(.*)$ /index.php?/$1 [QSA]
    

    在里面 .htaccess 主机的文件。 感谢您的回复。