WedX - журнал о программировании и компьютерных науках

Перенаправление Laravel 5.2 в методе создания AuthController

Я пытаюсь перенаправить пользователя на домашнюю страницу, если скрытое поле ввода было изменено на недопустимое значение, но поскольку метод создания должен возвращать экземпляр пользователя, я не могу сделать это здесь. Итак, каковы мои варианты?

 /**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return User
 */
protected function create(array $data)
{
    $role = Role::where('name', $data['role'])->first();

    // Hidden role field has been tampered with! Redirect to homepage.
    if(!$role){
        return redirect('/');
    }

    $user = new User();
    $user->email = $data['email'];
    $user->password = bcrypt($data['password']);
    $user->save();
    $user->roles()->attach($role);
    return $user;
}

Неустранимая ошибка с приведенным выше кодом:

FatalThrowableError in SessionGuard.php line 418:
Type error: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of Illuminate\Http\RedirectResponse given, called in E:\xampp\htdocs\taskie\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php on line 63
04.05.2016

  • Конкретно объясните свою проблему. Если вы получите какую-либо ошибку, покажите ее и скажите, что вы хотите? 04.05.2016
  • @Chonchol Mahmud Обновлен первоначальный вопрос с сообщением об ошибке. Я хочу перенаправить пользователя на домашнюю страницу из метода create(), если скрытое поле ввода не содержит допустимого значения. 04.05.2016
  • Покажите файл маршрутов для домашней страницы. 04.05.2016
  • На самом деле, это не метод контроллера. Функция redirect() возвращает объект Response и предназначена для возврата только из внутренних контроллеров (или анонимных функций, объявленных с маршрутами). Следовательно, вы должны смотреть на контроллер, обрабатывающий запрос. Это AuthController, сгенерированный с помощью artisan make:auth? 04.05.2016

Ответы:


1

В AuthController, сгенерированном ремесленником make:auth, запрос пользователя на регистрацию обрабатывается методом register, а не create. Этот метод реализован в трейте Illuminate\Foundation\Auth\RegistersUsers. Вы можете перегрузить этот метод в своем контроллере и изменить его поведение.

/**
 * Handle a registration request for the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function register(Request $request)
{
    $data = $request->all();
    $role = Role::where('name', $data['role'])->first();

    // Hidden role field has been tampered with! Redirect to homepage.
    if(!$role){
        return redirect('/');
    }

    return parent::register($response);
}
04.05.2016

2

Я решил проблему, создав пользовательскую проверку.

'email' => ['required','max:255','unique:users','regex:/(@org.co.uk)$/',],

и теперь нет необходимости в редиректе.

23.05.2017
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]