从表单过帐数据时出现消息“无消息”的异常

时间:2018-12-27 09:27:40

标签: laravel

访问路由器时出现此错误:

  

Symfony \组件\ HttpKernel \异常\   MethodNotAllowedHttpException没有消息

我试图找出答案,但无法解决。

路由器(web.php)

{!! Form::open(['action' => [ 'FormController@store' ], 'method' => 'POST']) !!}
    {!! Form::submit('test') !!}
{!! Form::close(); !!}

查看(subdomains.account.pages.test.blade.php)

namespace Ares\Http\Controllers;

use Illuminate\Http\Request;

class FormController extends Controller
{
    public function store()
    {
        return "test";
    }
}

控制器

php artisan serve

问题在于代码始终使用GET方法而不是POST。 我该如何解决?

编辑:我刚刚发现导致此问题的原因是因为我没有通过{{1}}使用Laravel,并且我只有一个 虚拟主机 公共服务器中,如何不用工匠服务即可解决此问题?

修复:(已编辑)

问题是通过在URL末尾强制使用斜杠。

4 个答案:

答案 0 :(得分:0)

您应该尝试以下操作:

{!! Form::open(['url' => 'testform.store', 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'post']) !!}
    {!! Form::submit('test') !!}
{!! Form::close(); !!}

更新后的答案

Route::post('/testForm', 'FormController@store')->name('testform.store');

{!! Form::open(['route' => 'testform.store', 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'post']) !!}
        {!! Form::submit('test') !!}
    {!! Form::close(); !!}

答案 1 :(得分:0)

尝试一下:

FormController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FormController extends Controller
{
  public function store()
  {
      return "test";
  }
}

子域/帐户/页面/test.blade.php

{!! Form::open(['action' => [ 'FormController@store' ], 'method' => 'POST']) !!}
    {!! Form::submit('test') !!}
{!! Form::close(); !!}

web.php

Route::get('/test', function ()
{
    return view('subdomains.account.pages.test');
});
Route::post('/testForm', 'FormController@store');

输出:当您使用路线 / test 时,测试按钮将显示在输出页面上

当您点击测试按钮时,它将被重定向到 / testForm 页面并获得输出 test

答案 2 :(得分:-1)

尝试将以下代码用于subdomains.account.pages.test

{!! Form::open(['action' => [ '\Ares\Http\Controllers\FormController@store' ], 'method' => 'POST']) !!}
  {!! Form::submit('test') !!}
{!! Form::close(); !!}

答案 3 :(得分:-1)

  1. 您应该从路线上移近一点,

    Route::get('/test', 'FromController@index');
    Route::post('/testForm', 'FormController@store');
    
  2. 然后运行,

    php artisan route:clear
    
  3. 然后提交您的表格