Laravel 5: 覆盖注册页面的默认视图

Laravel 5: override the default view for Registration page

我想更改身份验证过程以使用另一个视图模板。例如。应该使用 resources/views/register.blade.php 而不是 resources/views/auth/register.blade.php

但我很难找到调用此视图的代码。

我找到的唯一地方是 app/Services/Register,但前提是验证器失败了。我需要默认调用视图时的位置。

我认为您正在寻找文件 Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers.php 中被 \App\Http\Controllers\Auth.php 中的 class AuthController 使用的 trait AuthenticatesAndRegistersUsers。具体来说,您的示例的寄存器视图在函数 getRegister

中被调用

在 AuthController 中,您可以像这样覆盖方法 getRegister() 方法:

public function getRegister()
{
   return view('register');
}

Put this code in your AuthController.

在 class AuthController 中放置这个:

protected $registerView = 'directory.auth.register';

Laravel 5.6- I am extending Amarnasan's answer

Laravel 5.6中没有AuthController.php。取而代之的是,有 4 个不同的控制器。

  • LoginController.php
  • RegisterController.php
  • ForgotPasswordController.php
  • ResetPasswordController.php

要覆盖任何 Auth 控制器的视图,只需查找 Auth 控制器正在使用的特征。然后,转到该特征文件并检查哪个方法返回 Auth 控制器的默认视图。

更改登录的默认视图

LoginController.php中添加以下内容

public function showLoginForm() {
   return view('auth.m-login');
}

更改注册的默认视图

RegisterController.php中添加以下内容

public function showRegistrationForm() {
    return view('auth.m-register');
}

更改忘记密码的默认视图

ForgotPasswordController.php中添加以下内容

public function showLinkRequestForm(){
    return view('auth.passwords.m-email');
}

更改重置密码的默认视图

ResetPasswordController.php中添加以下内容

public function showResetForm(Request $request, $token = null){
    return view('auth.passwords.m-reset')->with(
        ['token' => $token, 'email' => $request->email]
    );
}