【问题标题】:Laravel root path post methodLaravel 根路径发布方法
【发布时间】:2018-07-12 22:46:57
【问题描述】:

我想创建一个表单,所以当我单击提交时,它会使用 post 方法转到根 url。我创建了以下

{{ Form::open(array('route' => array('send'), 'method' => 'post')) }}
...
{{ Form::close() }}

在路线中

Route::get('/', 'Controller@home');
Route::post('/', 'Controller@home')->name('send');

但是来自控制器的 $request 值是 null 并且方法是 get 而不是 post。

【问题讨论】:

  • 你有相同的路由url和相同的方法?
  • 我必须创建另一个方法吗?
  • 如果你有相同 url 但功能不同的 get 和 post 方法
  • 是的,它是基本的。首先阅读文档。
  • @kerbholz 请不要误会我,我喜欢提问,有时它可以帮助我们更好地理解。

标签: php laravel


【解决方案1】:

method=>post 无需与route 一起使用,它与url read in docs 一起使用。如下更改您的Form::open

要么

{{ Form::open(['route' => 'send']) }}

或者

{{ Form::open( ['url' => '/','method' => 'post'] ) }}

【讨论】:

    【解决方案2】:

    您可以使用Route::any() 如果您希望相同的 url 或函数响应多种类型的请求,例如 get、post 等。

    Route::any('/', 'Controller@home');
    

    或者你可以使用Route::match()

    Route::match(['get', 'post'], '/', Controller@home');
    

    【讨论】:

      【解决方案3】:

      您有两条以相同开头(“\”)指向同一个控制器功能的路由。

      尝试用类似的东西替换第二个

      Route::post('/home', 'Controller@homepost')->name('send');
      

      只需复制你的 home 方法并确保你有类似的东西:

      public function homepost (Request $request)
      { .... }
      

      【讨论】:

      • 开头是“/”,而不是“\”。让 GET 和 POST 路由指向同一个控制器方法是完全有效的。
      • 两条路线不一样,一条是get,另一条是post,所以两者都不一样。无需从/ 更改为/home 或任何其他。
      猜你喜欢
      • 2021-02-20
      • 2019-01-23
      • 2010-11-23
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2013-08-08
      • 1970-01-01
      相关资源
      最近更新 更多