如何在Laravel 5中重写注册功能

4 浏览
0 Comments

如何在Laravel 5中重写注册功能

我正在尝试通过遵循这个问题中的建议来重写Laravel 5中的Registration功能。然而,在我的情况下,我并不是想要从注册页面重定向用户。相反,我只想注册新用户,但保持当前(管理员)用户登录。默认函数会验证并登录新用户,然后重定向到\"home\"页面。所以,这是我尝试在AuthController.php中添加的代码:\n// 覆盖AuthenticatesAndRegistersUsers中的函数(位于/Illuminate/Foundation/Auth下)\npublic function postRegister(Request $request) {\n $validator = $this->registrar->validator($request->all());\n if ($validator->fails())\n {\n $this->throwValidationException(\n $request, $validator\n );\n }\n //$this->auth->login($this->registrar->create($request->all()));\n $this->registrar->create($request->all());\n return redirect(\'admin\');\n}\n我以为我很聪明,只是创建了一个新账户,然后将当前用户重定向到管理员页面。然而,没有创建用户并且重定向也没有发生。如果有任何想法,将不胜感激!

0
0 Comments

在Laravel 5中,有一个问题需要解决:如何重写注册功能(How to override Registration function in Laravel 5)。

首先,我们需要查看artisan rout:list命令,找到postRegister函数被调用的位置。接下来,我们需要重写register函数来解决这个问题。下面是具体的解决方法:

1. 打开app/Http/Controllers/Auth/RegisterController.php文件。

2. 在该文件中找到register函数,这是Laravel默认提供的注册逻辑。

3. 在自己的代码中,编写一个新的register函数,覆盖默认的注册逻辑。

4. 在新的register函数中,实现自定义的注册逻辑。

下面是一个示例代码,展示了如何重写register函数:

    public function register(Request $request)
    {
        // 自定义的注册逻辑
        // ...
    }

在新的register函数中,你可以根据自己的需求编写任何自定义的注册逻辑。这样,当用户进行注册操作时,会调用你所编写的register函数,而不是Laravel默认提供的函数。

通过重写register函数,你可以完全掌控注册逻辑,实现自定义的验证、存储等操作,以满足项目的需求。这是解决问题的一种有效方法。

0
0 Comments

问题的原因是用户想要在Laravel 5中覆盖注册功能,但是尝试覆盖代码失败。解决方法是使用模型的静态方法"create"来处理注册逻辑,同时在重定向之前不要执行登录操作,这样新用户就不会自动登录到网站。另外,可以尝试在"AuthController"中重写方法来实现注册功能。

0
0 Comments

Laravel 5中如何重写注册功能

在Laravel 5中,注册表单提交后默认会自动登录用户,但有时我们希望将用户重定向到一个“成功”页面,并让他们稍后手动登录。为了实现这一点,我们需要重写RegistersUsers trait中的register()方法。

RegistersUsers trait是Laravel框架的一部分,位于vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php中。这个trait负责处理所有注册的相关逻辑。

要禁用自动登录,我们需要删除这一行代码:

$this->guard()->login($user);

但是直接编辑Laravel核心文件或/vendor目录下的文件是不被允许的。我们可以通过在RegisterController中重写register()方法来实现相同的效果。

首先,在RegisterController中添加如下命名空间和use语句:

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;

use Illuminate\Auth\Events\Registered;

use App\User;

use App\Http\Controllers\Controller;

use Illuminate\Support\Facades\Hash;

use Illuminate\Support\Facades\Validator;

use Illuminate\Foundation\Auth\RegistersUsers;

然后,在RegisterController中添加如下代码重写register()方法:

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());

}

最后,根据之前的提示,确保redirectTo参数或方法设置正确,这样注册后的用户将会跳转到正确的页面。

0