2016-04-16 5 views
0

コントローラにPATCHリクエストを送信しようとすると、いつでもMethodNotAllowedExceptionエラーが発生します。それは私のネストされたルートでのみ発生し、PATCH要求を実行する他のすべてのルートはうまく動作します。ネストされたルート上のフォームモデルバインディング - 行219のRouteCollectionでPATCH - Return MethodNotAllowedExceptionを返しました

のroutes.php:

Route::resource('customers.aircraft','AircraftController'); 

私形式:

Form::model($aircraft, ['method' => 'PATCH', 'class' => 'form-horizontal', 'action' => ['[email protected]', $aircraft->id]]) 

各航空機は、顧客に属します。私のURLは次のようになります。

example.com/customers/5/aircraft/6/edit 

私はエラーメッセージを得るとき、私はアドレスバーに観察してることはこれです:

example.com/customers/6/aircraft 

私は、これはコントローラによって発生することができないと判断しました、私の@updateメソッドの最初の行はdd($request);であり、これはそれほど遠くないからです。私は、経路が私の要求を指示するのに必要な情報を得ていないということを仮定しています。それは明らかにaircraft_idを受け取り、それをcustomer_idとして使用していますが、方法や理由を理解できません。それはを通じて送信するcustomer_idが必要だと考える

Form::model($aircraft, ['method' => 'PATCH', 'class' => 'form-horizontal', 'action' => ['[email protected]', [$customer_id, $aircraft->id]]]) 

が、それはうまくいきませんでした:

私はこれを試してみました。私はかなりLaravelに新しいですので、これは知識が不足していると思っていますが、Stackoverflow、Laravel、LaracastsのWebサイトはこれまで私を助けてくれませんでした。

答えて

0

)メソッド(PUT使用してみてください:ルートのため

Form::model($aircraft, ['method' => 'PUT', 'class' => 'form-horizontal', 'action' => ['[email protected]', $aircraft->id]]) 

::リソース、更新方法のURLは次のようにする必要があります:

example.com/aircraft/6 

public function update(AircraftRequest $request, $aircraft_id) 
{ 
    $data = $request->all(); 
    dd($data['registration']); 
    $request['registration'] = strtoupper($request['registration']); 
    $aircraft->findOrFail($aircraft_id)->update($request->all()); 
    return redirect()->action('[email protected]', $aircraft_id); 
} 

ので、非表示の入力にCUSTOMER_IDを送信しよう。 それが動作するかどうか教えてください

+0

私はあまりにも愛を試しました。 –

+0

私はDD、 – BKF

+0

はまだ同じ結果 –

関連する問題