2015-10-16 15 views
5

Mam następującą trasę zasobu:routingu zasobów laravel - aktualizacja rzuca „metoda niedozwolone” Błąd

Route::resource('pools', 'PoolsController'); 

Mam też formularz edycji, która powinna rozpoczynać się „update” metody kontrolera, skonfigurować tak :

{{ Form::open(array('route' => ['pools.update', $pool['id']])) }} 

Kiedy przesłać formularz, otwiera www.domain.com/pools/6 (6 bycia $pool['id'] powyżej). Jednak zamiast uruchamiania kodu w metodzie update(), zgłasza błąd:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException 

Teraz, znalazłem bardzo pomocne raportowania błędów laravel do tej pory, a to nie jest wyjątkiem. Opis błędu jest w najlepszym razie niejasny i nie pomoże mi w rozwiązaniu problemu.

Miałem wrażenie, że metoda aktualizacji powinna automatycznie otrzymywać dane pocztowe podczas korzystania z racjonalnego routingu. Wcześniej pracował również w niektórych przykładach, używając tej samej składni.

Czy ktoś może mi powiedzieć, co się tutaj dzieje?

+0

Czy próbowałeś przekazać metodę do formularza? – Szenis

+0

Prawdopodobny duplikat [MethodNotAllowedHttpException laravel-4] (http://stackoverflow.com/questions/17501653/methodnotallowedhttpexception-laravel-4) –

Odpowiedz

5

do uruchomienia kodu w metodzie aktualizacji, należy podszyć się pod żądanie PUT. zobacz tutaj: Form Method Spoofing

+1

Dobrze. Zły typ żądania. Dzięki, zaakceptuje odpowiedź. To może być dygresja, ale czy zabije ona Laravel, by po prostu powiedzieć "metoda aktualizacji oczekuje danych PUT" zamiast tego ogólnego błędu, który mógłby oznaczać dowolną liczbę różnych rzeczy? – jovan

+0

to naprawdę proste, jeśli o tym pomyśleć. "metoda niedozwolona" brzmiałaby "nie napisałeś kodu, aby obsłużyć tę metodę" wśród laików. również sprawdź [docs] (http://laravel.com/docs/5.1/controllers#restful-resource-controllers) –

Powiązane problemy