Параметр маршрутизации Larevel 4.2% 7Busername% 7D не работает

0

Я делаю небольшой проект, используя laravel, но маршрутизация не работает по какой-то причине, пожалуйста, укажите мне в правильном направлении, ниже я отправляю код.

маршрутизатор

Route::get('{username}', array('as' => 'profile', 'uses' => 'ProfileController@index'));

контроллер

  public function index($username = null) {
        $username = Sentry::getUser()->username;

        return View::make('home.profile')
                 ->with('title', 'From controller')
->with('username', $username);

    }

Url http://social.app/%7Busername%7D

public function postLogin(){
        $credentials = Validator::make([
                    'email' => Input::get('email'),
                    'password' => Input::get('password')
                        ], [
                    'email' => 'required|email',
                    'password' => 'required|alpha_num|between:8,15',
        ]);
        if ($credentials->fails()) {
            return Redirect::route('login')
                            ->withInput()
                            ->with('title', 'Welcome to mySite | login')
                            ->withErrors($credentials->getMessageBag());
        } else {
            try {
                $credentials = array(
                    'email' => Input::has('email') ? Input::get('email') : null,
                    'password' => Input::has('password') ? Input::get('password') : null,
                );

                // Log the user in
                $user = Sentry::authenticate($credentials, Input::has('remember_me') and Input::get('remember_me') == 'checked');

                return View::make('home.profile');
            } catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
                return View::make('users.login')
                                ->with('title', 'wrong login')
                                ->with('message', 'Email filed is required');
            } catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
                return View::make('users.login')
                                ->with('title', 'something went wrong')
                                ->with('message', 'Password filed is required');
            } catch (Cartalyst\Sentry\Users\WrongPasswordException $e) {
                return View::make('users.login')
                                ->with('title', 'wrong Password')
                                ->with('message', 'The password/login is incorrect.');
            } catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
                return View::make('users.login')
                                ->with('title', 'Not found')
                                ->with('message', 'Sorry we can't found the user.');
            }

        }
    }
  • 1
    Проблема, вероятно, при создании URL. Можете ли вы показать нам этот код?
  • 0
    При успешном входе в систему я отправлю пользователя в его профиль, но я не могу заставить его работать, вот мой контроллер входа в систему.
Теги:
routes
laravel-4
php-5.5
cartalyst-sentry

1 ответ

0
Лучший ответ

Я все еще не вижу перенаправления на profile в вашем контроллере входа, но я думаю, что вы хотите что-то вроде этого:

// ...

$user = Sentry::authenticate($credentials, Input::has('remember_me') and Input::get('remember_me') == 'checked');
return Redirect::route('profile', $user->username);

// ...

Sidenote: имейте в виду, что имя пользователя как URL-адрес корневого уровня означает, что вам нужно проверять при создании пользователя, поэтому имя пользователя не сталкивается ни с одним из ваших существующих URL-адресов.

  • 0
    Здравствуйте, Lukasgeiter, спасибо за вашу помощь, у меня еще есть еще один вопрос. КАК я могу удалить слово <profile> из url social.app/profile?myUserName?
  • 0
    Вы уверены, что используете Redirect::route а не Redirect::to ?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню