访问路由器时出现此错误:
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末尾强制使用斜杠。
答案 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)
您应该从路线上移近一点,
Route::get('/test', 'FromController@index');
Route::post('/testForm', 'FormController@store');
然后运行,
php artisan route:clear
然后提交您的表格