Php 在Laravel中成功注册后如何重定向到上一页?
现在Php 在Laravel中成功注册后如何重定向到上一页?,php,laravel,redirect,laravel-5,Php,Laravel,Redirect,Laravel 5,现在重定向到设置为/home 我想知道如何重定向到上一页 我试着用 protected $redirectTo = URL::previous(); 但是我得到了解析错误,应该是,''或;'' 解决这个问题的最好办法是什么?我假设我需要以某种方式使用URL::previous()覆盖$redirectTo变量,这就足够了 这是我的注册控制器: namespace App\Http\Controllers\Auth; use App\User; use URL; use App\Http\C
重定向到
设置为/home
我想知道如何重定向到上一页
我试着用
protected $redirectTo = URL::previous();
但是我得到了解析错误,应该是,''或;''
解决这个问题的最好办法是什么?我假设我需要以某种方式使用URL::previous()
覆盖$redirectTo
变量,这就足够了
这是我的注册控制器:
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']),
]);
}
}
protected function redirectTo()
{
return url()->previous();
}
protected function registered(Request $request, $user)
{
return redirect()->intended($this->redirectPath());
}
RegisterController
使用RegisterUsers
特性。提交表单时,将调用此特性的register()
方法。它验证输入,创建并验证用户,然后重定向到redirectPath()
方法指定的路径。此方法实际上是在重定向用户
特征中设置的,该特征由注册表用户
特征使用
redirectPath()
方法将在控制器上查找redirectTo()
方法。如果它找到这个方法,它将使用它返回的任何东西。如果找不到此方法,它将重定向到重定向到
属性中指定的url
因此,如果需要动态设置重定向路径,请将其放入RegisterController:
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']),
]);
}
}
protected function redirectTo()
{
return url()->previous();
}
protected function registered(Request $request, $user)
{
return redirect()->intended($this->redirectPath());
}
阅读更多。将此添加到注册表控制器中
:
protected function redirectTo(){
return url()->previous();
}
注意:如果出现字段$redirectTo
,请将其删除,如果用户从登录页面转到注册页面,并且我们需要在注册后将其重定向到上一个链接,这会更好:
将此添加到RegisterController:
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']),
]);
}
}
protected function redirectTo()
{
return url()->previous();
}
protected function registered(Request $request, $user)
{
return redirect()->intended($this->redirectPath());
}
案例中的上一页应该是注册表单页面。他们被发送到注册表单是因为他们单击了注册链接还是因为某些身份验证中间件?完美的解释也是如此