2014-09-15 42 views
5

Ben kullanıcıları onların çalma listesi düzenlemesine izin vermek için çalışıyorum. Ancak, PATCH isteğini yürütmeye çalıştığımda, MethodNotAllowedHttpException hatasını aldım.laravel formu, sadece POST - İç içe RESTfull Kontrolörler, MethodNotAllowedHttpException

routes.php: (php esnaf yolları aracılığıyla görüntülenen:

Route::resource('users', 'UsersController'); 
Route::resource('users.playlists', 'PlaylistsController'); 

Bu bana erişimi vermelidir

Ben RESTful Kaynak Kontrolörleri kurdunuz (bir POST bekliyor) aşağıdaki formu yürütmeye çalıştığınızda)

URI          | Name     | Action 
PATCH users/{users}/playlists/{playlists} | users.playlists.update | [email protected] 

Ancak, ben MethodNotAllowe olsun dHttpException hatası: Ben 'method'=> 'PATCH' kaldırırsanız

/kullanıcılar/testuser/çalma/1/düzenlemek

{{ Form::open(['route' => ['users.playlists.update', $playlist->id], 'method' => 'PATCH' ]) }} 
{{ Form::text('title', $playlist->title) }} 
{{ Form::close() }} 

bir hata alamadım, ama bu benim public function store() değil benim

cevap

6

çalıştırır Html formları yalnızca GET ve POST'u desteklediğinden, PATCH isteğine benzetmek için _method adlı eke ek bir gizli alan eklemeniz gerekir PATCH isteği

Yukarıdaki açıklamada @Michael A önerdiği gibi
<input type="hidden" name="_method" value="PATCH"> 
+1

YAMA Formu :: açıkta yöntem seçeneği aracılığıyla ekleniyor. Ayrıca PUT kullanabilirsiniz. Açıklanamayan aynı sorunu yaşıyorum, ne yaparsam yapayım, PUT veya PATCH yöntemleri MethodNotAllowedHttpException'ı atar. Çok sinir bozucu. –

+0

'Route :: any ('the_url_where_you_post_to', function() {});' veya 'Route :: patch' veya' Route :: put' komutunu kullandığınız yönteme göre deneyin. – Nenad

4

, benim için çalıştı bir POST

<form method="POST" action="patchlink"> 
    <input type="hidden" name="_method" value="PATCH"> 

olarak gönderebilirsiniz. formundan sonra