Как перенаправить на предыдущую страницу после успешной регистрации в Laravel?

Прямо сейчас redirectTo установлен в / home.

Я хочу знать, как я могу перенаправить на предыдущую страницу.

Я пытался с помощью

protected $redirectTo = URL::previous();

но я получаю ошибку разбора, ожидая ','' or‘;’»

Что было бы лучшим решением для решения этой проблемы? Я предполагаю, что мне нужно как-то переопределить переменную $ redirectTo с помощью URL :: previous (), и этого будет достаточно.

Это мой регистр контроллера:

namespace App\Http\Controllers\Auth;

use App\User;
use URL;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{

use RegistersUsers;

/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/home';

/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}

/**
* Get a validator for an incoming registration request.
*
* @param  array  $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
// 'name' => 'required|max:255',
'username' => 'required|max:255|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
}

/**
* Create a new user instance after a valid registration.
*
* @param  array  $data
* @return User
*/
protected function create(array $data)
{
return User::create([
// 'name' => $data['name'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}

1

Решение

RegisterController использует RegistersUsers черта характера. Когда вы отправляете форму, register() метод этой черты называется. Он проверяет ввод, создает и аутентифицирует пользователя, а затем перенаправляет на путь, указанный redirectPath() метод. Этот метод фактически установлен в RedirectsUsers черта, которая используется RegistersUsers черта характера.

redirectPath() метод будет искать redirectTo() метод на контроллере. Если не найти, если будет перенаправить на URL-адрес, указанный в redirectTo имущество. Если он не найдет этот метод, он будет использовать все, что возвращается из него.

Итак, если вам нужно установить путь перенаправления динамически, поместите это в свой RegisterController:

protected function redirectTo()
{
return url()->previous();
}

Прочитайте больше Вот.

2

Другие решения

Попробуй это:

Redirect::back()

Laravel Redirect

0

добавить это к RegisterController:

protected function redirectTo(){
return url()->previous();
}

Примечание: если поле присутствует $redirectTo , убери это

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector