laravel 4 как обрабатывать сообщение для входа

Я хотел бы создать действие для обработки POST-запросов на вход. Я не знаю, что я делаю неправильно, но я не могу обработать/напечатать любой запрос в своем действии postLogin. Я новичок в Laravel, может быть, я не понимаю концепцию Laravel, но обработка запросов (обработка базового запроса маршрута) через маршруты для меня настолько незнакома.

Я хотел бы обрабатывать данные POST в действии моего контроллера, а не в маршрутах!

UserController.php

  public function postLogin()
  {
     $user = array(
            'email' => Input::get('email'),
            'password' => Input::get('password')
        );

     print_r($user);
     exit('1');
  }

Маршруты.php

//invoke action to handle post request
Route::post('login','UserController@login');

//render the view
Route::get('user/login', function()
{
  return View::make('user.login');
});

логин.balde.php

     {{ Form::open(array('url' => 'user/login', 'files' => false,'name'=>'postLogin'))}}
    ...
    ..
 {{Form::submit('LogIn',array('class'=>'btn btn-primary btn-lg'));}}
       {{ Form::close() }}

person Nagy Ervin    schedule 22.04.2014    source источник


Ответы (2)


Маршрутизация с Laravel очень проста, я попытаюсь объяснить это, и я надеюсь, что это больше не будет выглядеть странно. давайте сначала создадим маршрут, как вы:

Route::post('login','UserController@login');

под этим мы подразумеваем, что для каждого почтового запроса по ссылке "yourWebsiteAddress/login" будет выполняться функция login() в вашем UserController. Итак, у вас должна быть функция login() в UserController. Чтобы проверить, вызывается ли эта функция, просто верните строку:

public function login(){
    return 'login is working!';
}

или просто сбросить ввод

public function login(){
    $input = Input::all();
    return dd($input);
}

теперь в вашей форме должен быть URL-адрес и существующий маршрут

{{ Form::open(array('url' => 'login')) }}
     {{ Form::submit('Submit') }}
{{ Form::close() }}

Я надеюсь, что это будет полезно

person Mohamed Bouallegue    schedule 22.04.2014
comment
Спасибо, но мой код все еще не работает. Я действительно не знаю, что не так в моем коде. результат: Упс, похоже, что-то пошло не так. 500 Внутренняя ошибка - person Nagy Ervin; 23.04.2014
comment
попробуйте переписать его снова, начните с кода в ответе, а затем адаптируйте его к своему, самое важное - убедиться, что вызывается метод входа в систему, после чего вы можете его изменить. - person Mohamed Bouallegue; 23.04.2014
comment
Большое спасибо. Я неправильно написал слово в имени функции. - person Nagy Ervin; 23.04.2014

Я не уверен, что понимаю, но:

В вашей форме действие user/login, но в маршруте login (из почтового запроса) попробуйте изменить его на login, а в маршрутах изменить login на postLogin

// line routes
Route::post('login','UserController@postLogin');

// line login.blade.php
{{ Form::open(array('url' => 'login', 'files' => false,'name'=>'postLogin'))}}
person Lajdák Marek    schedule 22.04.2014