2014-11-11 5 views
4

Я использую Laravel создать простую форму:Laravel форма - маршрут не определен

{{ Form::open(array('route' => 'postrequest')) }} 
    {{ Form::text('Name') }} 
    {{ Form::text('Surname') }}   
    {{ Form::submit('submit') }} 
    {{ Form::close() }} 

В моем routes.php файла определяются маршрут:

Route::post('postrequest', function() 
{ 
    return View::make('home'); 
}); 

Но я получаю сообщение об ошибке в журнале файл:

Следующее исключение «ОшибкаException» с сообщением «Маршрут [postrequest] не определен.

Я не мог найти решение в Интернете. Что я делаю неправильно?

ответ

1

Вы пытаетесь использовать здесь названный маршрут. Если вы хотите сделать так, вам необходимо изменить свой маршрут в:

Route::post('postrequest', array('as' => 'postrequest', function() 
{ 
    return View::make('home'); 
})); 

или вы можете, конечно, изменить способ открыть свою форму, используя прямой URL:

{{ Form::open(array('url' => 'postrequest')) }} 

Но вы действительно должны рассмотреть возможность использования named routes.

+0

спасибо, теперь это работает. Но я не понимаю, почему? –

+1

Потому что в вашем коде вы создали маршрут с точным url (без имени), и если вы используете в форме 'route', это означает, что вы хотите использовать маршрут с именем, которое вы указали. Поэтому Laravel искал маршрут с именем 'postrequest', но он не нашел ни одного, потому что вы не дали никакого имени для своего маршрута. –

+0

И если я использую ('url' => 'postrequest'), структура будет использовать URL-адрес маршрута, определенный в route.php? –

1

Открытая форма с методом поста

{{ Form::open(array('url' => 'postrequest', 'method' => 'post')) }} 

Так как вы написали маршрут для запроса поста.

+1

метод неявно устанавливается на «пост». –

1

В случае, если вы хотите сослаться на метод контроллера в вас маршрут, вы должны сделать что-то вроде этого:

Route::post('postrequest', ['as' => 'postrequest', 'uses' => '[email protected]']); 
Смежные вопросы