【问题标题】:I am receiving the Laravel error "MethodNotAllowedHttpException in RouteCollection.php line x" while trying to POST a query form我在尝试发布查询表单时收到 Laravel 错误“RouteCollection.php 第 x 行中的 MethodNotAllowedHttpException”
【发布时间】:2017-11-28 21:11:34
【问题描述】:

这只是一个查询表单。我搜索了这个问题并尝试了我找到的许多解决方案,但都没有解决这个问题。

Laravel 版本:5.4.23。使用 Blade 模板引擎。

我的路线:

Route::post('products/search', 'ProductsController@search');

我的表格:

{{Form::open(['url' => ['products/search']])}}
    {{Form::text('search', $search)}}
    {{Form::submit('Search')}}
{{Form::close()}}

我的控制器:

class ProductsController extends Controller
{
    ...

    public function search(Request $request) {
        dd('This point is never reached.');
        return view(...
    }
}

注意事项:

我尝试将路由更改为Route::get,但没有成功。尝试将我的表单方法更改为 GET,如{{Form::open(['method' => 'GET', 'url' => ['products/search']])}},但没有成功。

【问题讨论】:

  • 你的应用中还有其他路线吗?

标签: php forms laravel post blade


【解决方案1】:

所以问题可能是:

解决方案 1。您在此之上定义了另一条路线,例如:Route::get('products/{wildcard}', 'Controller'} 在这种情况下,请确保将所有其他路线放在您要开始工作的路线之下。

解决方案2

继续删除控制器。然后运行composer dump-autoload

然后在命令行php artisan make:controller UserController 上运行命令,然后粘贴您拥有的配置文件方法。

Solution3您可能已经缓存了路由,所以这样做:php artisan route:clear

解决方案 4。把网址改成

{{ Form::open(array('url' => 'foo/bar')) }}
    //
{{ Form::close() }}

【讨论】:

    【解决方案2】:

    我认为您需要更改刀片文件,例如:

    {{Form::open(['url' => ['products/search']])}}
    

    {{Form::open(['url' => 'products/search'])}}
    

    或者您可以在您的路线中添加路线名称,例如:

    Route::post('products/search', 'ProductsController@search')->name('products.search');
    
    
    {{ Form::open(['route' => 'products.search', 'method' => 'post']) }}
    

    希望对你有所帮助

    【讨论】:

      【解决方案3】:

      我不知道框架,但为什么url 值是数组形式的?

      我原以为你会想要类似的东西

      Form::open(['url' => 'products/search'])
      

      根据文档,默认的表单方法是POST,所以你应该保持你的路线为Route::post。如果您想将方法更改为GET(我建议您进行搜索操作),只需使用Route::get

      Form::open(['url' => 'products/search', 'method' => 'get'])
      

      似乎您还可以通过action 属性使用命名路由名称甚至控制器方法,即

      Form::open(['action' => 'ProductsController@search'])
      

      【讨论】:

        猜你喜欢
        • 2016-08-25
        • 1970-01-01
        • 2016-06-28
        • 1970-01-01
        • 2017-02-26
        • 2017-10-12
        • 2017-03-13
        • 1970-01-01
        • 2016-07-30
        相关资源
        最近更新 更多