[英]Laravel 5.2 MethodNotAllowedHttpException in RouteCollection.php line 219
[英]Laravel 5.2 : MethodNotAllowedHttpException in RouteCollection.php line 219
我想通過我的任務控制器保存一個表單數據。 但是當我去 url 訪問我的表單時。 它顯示以下錯誤:
RouteCollection.php 第 219 行中的 MethodNotAllowedHttpException:
這是我的 Routes.php
<?php
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/', function () {
return view('welcome');
});
Route::get('/all_item','TestController@index');
Route::post('/create_item','TestController@create');
Route::get('/home', 'HomeController@index');
});
這是我的任務控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Test;
use App\Http\Requests;
use Redirect;
class TestController extends Controller
{
public function index()
{
$alldata=Test::all();
// return $alldata;
return view('test.itemlist',compact('alldata'));
}
public function create()
{
return view('test.create_item');
}
public function store(Request $request)
{
$input = $request->all();
Test::create($input);
return redirect('test');
}
}
這是 create_item 頁面(發布表單/查看頁面)
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Create Item</div>
{!! Form::open(array('route' => 'Test.store','class'=>'form-horizontal','method' => 'patch')) !!}
{!! Form::token(); !!}
<?php echo csrf_field(); ?>
<div class="form-group">
<label>Item Code</label>
<input type="text" name="item_code" class="form-control" placeholder="Code">
</div>
<div class="form-group">
<label>Item Name</label>
<input type="text" name="item_name" class="form-control" placeholder="Name">
</div>
<button type="submit" class="btn btn-default">Submit</button>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
@endsection
您在表單中使用PATCH
方法,但使用POST
方法路由
嘗試
'method' => 'patch'
改成
'method' => 'post'
LaravelCollective 的 HTML僅支持 POST、GET、PUT DELETE 方法,因此您可能希望將其更改為 POST 或 PUT
'method' => 'POST'
您還沒有宣布Test.store
在你的路線Routes.php
,所以嘗試添加的資源或命名路線:
Route::post('/store_item', [
'as' => 'Test.store', 'uses' => 'TestController@store'
]);
正如我所看到的,TestController@create 是一個 post 方法。但它的行為就像一個 get 方法。嘗試將 Request $request 參數傳遞給 create 方法。否則,如果你真的需要 create 方法的 get 方法,請將方法更改為 get在 Routes.php 像這樣,
Route::get('/create_item','TestController@create');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.