Проблема с вложенным маршрутом Laravel

У меня проблема с Laravel 4, вложенной маршрутизацией. Я могу отобразить форму метода создания, но не могу сохранить. Вот код, я сразу к делу. У меня есть базовый контроллер ресурсов и еще один вложенный контроллер.

This is in my Routes.php

Route::resource('profile','ProfileController');
Route::resource('profile.bands','BandsController');

Я не думаю, что мне нужно отображать здесь код профиля, я покажу вам BandsController

public function create($profileId)
{
    return View::make('bands.create',['title' => 'Create Band Profile' , 'profileId' => $profileId]);
}

Это просто отобразит форму, как вы знаете. Форма:

{{Form::open( [ 'route' => ['profile.bands.create',$profileId]])}}
<input class="input" type="text" name="name" value="" />
<input class="input" type="text" name="city" value="" />
 <input type="submit" value="submit" />
    {{Form::close()}}

Теперь я не понял, URL-адрес действия формы выглядит хорошо, когда я просматриваю его в браузере, но когда я отправляю его, я получаю эту ошибку.

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

open: E:\server\www\gigmor.com\gigmor\vendor\laravel\framework\src\Illuminate\Routing\Router.php
    // The method not allowed exception is essentially a HTTP 405 error, so we
    // will grab the allowed methods when converting into the HTTP Kernel's
    // version of the exact error. This gives us a good RESTful API site.
    elseif ($e instanceof MethodNotAllowedException)
    {
        $allowed = $e->getAllowedMethods();

        throw new MethodNotAllowedHttpException($allowed, $e->getMessage());
    }
}

Что я мог сделать не так?


person Kbir Mhrjn    schedule 29.09.2013    source источник


Ответы (1)


MethodNotAllowedHttpException означает, что используемый вами метод HTTP неверен. Вы используете POST на маршруте, который принимает только GET.

В форме вы должны использовать маршрут

profile.bands.store

Ваш маршрут .create предназначен только для отображения формы создания записи, чтобы опубликовать ее, вы должны использовать хранилище.

Взгляните на имена и методы ваших маршрутов, используя

php artisan routes
person Antonio Carlos Ribeiro    schedule 29.09.2013
comment
Не знал о php artisan routes. Спасибо. - person elpddev; 26.01.2015