3

Объясните пожалуйста в чем проблема.Если я правильно понимаю данный вью будет загружаться только после того как будет POST запрос?

class UsersController extends Controller{

        public function create(){

            $data['title'] = 'Create user';

            return view('users.create_user',$data); 
        }
}

<form method="post">
        <?php echo csrf_field(); ?>
        <input type="text" name="username"><br>
        <input type="text" name="password"><br>
        <input type="submit" value="Save">
</form>

Route::post('users/create','UsersController@create');

Sorry, the page you are looking for could not be found.
NotFoundHttpException in RouteCollection.php line 143:
quaresma89
  • 2,207
  • Поменял маршрут на Route::any('users/create','UsersController@create'); и заработало – quaresma89 Sep 14 '15 at 09:05
  • Ошибка возникает когда? Когда нажимаете на Save в форме? – Gino Pane Sep 14 '15 at 09:12
  • Нет.Просто обращаюсь к данному методу и возникает ошибка. – quaresma89 Sep 14 '15 at 09:14
  • 2
    Если вы в браузере пытаетесь зайти по адресу "<ваш сайт>/users/create", то будет выполнен поиск контроллера для GET метода, так как обычный запрос по адресу - это GET. А вот когда на Save нажмете, тогда уже POST будет. Хорошей практикой в данном случае будет создать один метод для отображения формы по GET запросу, и второй - для обработки сохранения после нажатия на Save. – Gino Pane Sep 14 '15 at 09:17
  • Ага я так и понял изначально.А если использовать Any? Это получается метод будет вызван при реквестах любого типа? – quaresma89 Sep 14 '15 at 09:21
  • да, но так лучше не делать. – Gino Pane Sep 14 '15 at 09:22

1 Answers1

4

Вы же выводите форму, тогда нужно использовать GET, из браузера же ломитесь по адресу "/users/create"

А вообще лучше сделать ресурс

Route::resource('users','UsersController');

И не писать потом кучу роутов руками, достаточно будет описать нужный метод в контроллере.

http://laravel.com/docs/master/controllers#restful-resource-controllers

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507