【发布时间】:2018-09-30 21:33:06
【问题描述】:
这是我在我的供应商文件夹中的 RegisterUsers.php 中的内容:
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
//$this->guard()->logout();
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
在我的 RegisterController 中,从 auth 文件夹中,我有以下内容:
protected function create(array $data)
{
Session::flash('status', 'Please verify your email for account activation');
//if $request->role_id == '2' then save the role_id
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'verifytoken' => Str::random(40),
'role_id' => $data['role_id']
]);
$thisUser = User::findOrFail($user->id);
$this->sendEmail($thisUser);
return $user;
}
我使用 forge 部署了我的网站,但我只是注意到我的注册与在 localhost 上的注册不同。
当用户注册时,系统会自动让他登录。在本地主机上,我禁用了守卫,但那是在供应商文件夹中。
由于我无法上传供应商文件夹,我该如何在实时环境中禁用防护?
【问题讨论】:
-
您不需要更新供应商文件夹,您发布的代码在
RegisterController内,所以它应该可以工作,您能解释一下吗? -
@utdev 我编辑了我的问题。粘贴的代码不在RegisterController中
-
嗯好吧,为什么你不能更新供应商文件夹中的文件?你使用的是哪个 laravel 版本?
-
实际上它现在可以工作了。我运行了 composer install 命令来添加供应商文件夹并编辑了 RegistersUsers.php
-
很好,但请在下面查看我的答案,这是一种更好的方法,它不是更改供应商类的好习惯,我的答案提供了一个解决方案,您不需要覆盖供应商文件