laravel MethodNotAllowedHttpException没有消息错误

时间:2019-01-26 11:18:32

标签: laravel laravel-5

我正在提交表格,但它显示了错误

  

MethodNotAllowedHttpException没有消息

这是我的代码。

create.blade.php

 <form method="POST" action="/Form/show">
        {{csrf_field()}}
        <div class="form-group">
            First Name : <input class="form-control" type="text" placeholder="John" name="first_name"/>
        </div>
        <div class="form-group">
            Last Name : <input class="form-control" type="text" placeholder="Wick" name="last_name"/>
        </div>
  <button type="submit" class="btn btn-default">Submit</button>
    </form>

ResourceController.php

public function show(){

    $f_data = \App\revesion_registration::all();
    return view('Form.show', compact('f_data'));
}


public function create(){
    return view('form.create');
}

public function store(){
    revesion_registration::create(request(['first_name','last_name']));
return redirect('show');

}

web.php

Route::resource('Form','ResourceController');

route:list

GET|HEAD | Form | Form.index |App\Http\Controllers\FormsController@index
POST     | Form | Form.store | App\Http\Controllers\FormsController@store
GET|HEAD | Form/create | Form.create | App\Http\Controllers\FormsController@create 
GET|HEAD | Form/{Form} | Form.show | App\Http\Controllers\FormsController@show

3 个答案:

答案 0 :(得分:0)

show()方法仅接受GET个请求,这是您的表单正在尝试POST进行的请求。假设您尝试在数据库中创建新记录,则应将表单更新为:

<form method="POST" action="Form">

如果已添加/更新了路由,请运行命令php artisan route:clear清除路由缓存。

答案 1 :(得分:0)

在您的create.blade.php文件中,

<form method="POST" action="{{ route('Form.store') }}">

在您的控制器存储方法中,

public function store(Request $request)
  {
    revesion_registration::create(request(['first_name','last_name']));
return redirect(route('Form.create'));

  }

答案 2 :(得分:0)

使用

Route::resource('routename','ControllerClassName');

例如,我们有帖子模型

Route::resource('posts','PostController');

它将注册以下路线

Route::get('/posts',  'PostController@index')->name('posts.index');
Route::get('/posts/create',  'PostController@create')->name('posts.create');
Route::post('/posts',  'PostController@store')->name('posts.store');
Route::get('/posts/{post}',  'PostController@show')->name('posts.show');
Route::get('/posts/{post}/edit',  'PostController@edit')->name('posts.edit');
Route::put('/posts/{post}',  'PostController@update')->name('posts.update');
Route::delete('/posts/{post}',  'PostController@destroy')->name('posts.destroy');

现在开始解决您的问题

您的模型名称是revesion_registration,您的表名称将是revesion_registrations

解决方案

您需要将路线注册为

revesionregistrations

Route::resource('revesionregistrations','RevesionRegistrationController');web.php

并在您的创建表单中

<form name='add_revesionregistrations' method='post' enctype="multipart/form-data" action="{{ route('revesionregistrations.store') }}" autocomplete="off">
                    {{csrf_field()}} 

   <input type="text" name='name' class="form-control">
                   <input type="submit" value="Submit">
                </form>

您的问题将得到解决

Now My Suggestion

创建模型时不要使用小写字母

不是revesion_registration

尝试php artisan make:model RevesionRegistration -a

如果仅执行 CRED 操作,请使用Route::resource('routename','ControllerClassName');