现在redirectTo
设置为 /home
.
我想知道如何重定向到上一页。
我尝试使用
protected $redirectTo = URL::previous();
但我得到解析错误,期待 ','' or
';''解决这个问题的最佳解决方案是什么?我想我需要超越
$redirectTo
以某种方式变量 URL::previous()
这样就足够了。这是我的注册 Controller :
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']),
]);
}
}
最佳答案
RegisterController
使用 RegistersUsers
特征。当您提交表单时,register()
调用此特征的方法。它验证输入,创建并验证用户,然后重定向到 redirectPath()
指定的路径。方法。这个方法其实是在RedirectsUsers
中设置的trait,由 RegistersUsers
使用特征。redirectPath()
方法将查找 redirectTo()
Controller 上的方法。如果它确实找到了这个方法,它将使用从它返回的任何内容。如果没有找到这个方法,它会重定向到redirectTo
中指定的url。属性(property)代替。
因此,如果您需要动态设置重定向路径,请将其放在您的 RegisterController 中:
protected function redirectTo()
{
return url()->previous();
}
阅读更多 here .
关于php - 在 Laravel 中成功注册后如何重定向到上一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42326430/