在我的Laravel应用程序中,新注册后,它会自动连接到该新帐户。
我只需要注册并与实际的Auth帐户保持联系。我们如何更改此默认设置?
因为我正在使用管理员用户在应用程序中创建新帐户。 谢谢
这是我的registerController代码:
ID SQL_Stmt
1 Select EmpID,Employee From dbo.Employee
2 Select DepID,DeptName From dbo.Department
在Registeruser.php中,我将功能寄存器更改为
use RegistersUsers;
protected function redirectTo()
{
if(Auth::user()->is_admin == 1){
return 'persons';
}
return '/persons';
}
public function __construct()
{
$this->middleware('auth');
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
请注意,我使用public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
而不是person.blade.php
答案 0 :(得分:1)
在您的App/Http/Controllers/Auth/RegisterController
中,您需要从register
特征中覆盖方法RegistersUsers
:
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
此行:$this->guard()->login($user);
是用户登录的地方。您可以删除它或对其进行修改以适合您的需求。
现在,如果您要在注册后根据用户类型重定向到某个地方,则需要将protected $redirectTo
替换为:
protected function redirectTo()
{
//You would need to modify this according to your needs, this is just an example.
if(Auth::user()->hasRole('admin')){
return 'path';
}
if(Auth::user()->hasRole('regular_user')){
return 'path';
}
return 'default_path';
}
在文件顶部,添加以下内容:
use Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;