私はLaravel 5.2.3でPHPstormを使用しています。現在、作成ページのフォームを再利用して人物情報を更新しようとしています。私はlaracastチュートリアルからTにすべてを追ってきましたが、何らかの理由でMethodNotAllowed
というエラーが表示されます。MethodNot更新を実行しようとすると許可されます。
ルート
Route::group(['middleware' => ['web']], function()
{
...
Route::get('create','[email protected]');
Route::post('create', '[email protected]');
Route::resource('pages', 'ResourceController');
});
コントローラ
class ResourceController extends Controller
{
...
public function create()
{
return view('pages.create');
}
public function store(Requests\CreateNewContactRequest $request)
{
ContactPerson::create($request->all());
return redirect('resource');
}
public function edit($id)
{
$user = ContactPerson::findOrFail($id);
return view('pages.edit')->with(compact('user'));
}
public function update($id, Request $request)
{
$user = ContactPerson::findOrFail($id);
$user->update($request->all());
return redirect('pages.resource');
}
}
編集ビュー
@extends('app')
@section('content')
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['[email protected]', $user->id]]) !!}
<div class="form">
{!! Form::label('first', 'First Name: ') !!}
{!! Form::text('First_Name', null, ['class' => 'form']) !!}
</div>
<div class="form">
{!! Form::label('last', 'Last Name: ') !!}
{!! Form::text('Last_Name', null, ['class' => 'form']) !!}
</div>
...
{!! Form::close() !!}
ソースの表示
それはlaravelがPATCHとしてそれを偽装してPOSTメソッドだということを示しています。
私は情報を編集できる場所に持ってきて、エラーなく提出してください。 '{!! Form :: model($ user、['route' => ['pages.update'、$ user-> id]])!!} '既存の情報を含む新しいレコードをデータベースに作成します。 PATCHの代わりにPUTをやっているように思えるかもしれません。また、更新するのに気をつけていなくても、ちょうどその代わりに作成しているような感じです。 – ph0bolus