我想要改变Laravel Auth的默认登陆视图。之前的建议是修改位于/vendor目录下相应控制器内部的路径,然而这是一个合作项目,因此不能修改供应商文件。
Laravel Auth的默认视图为auth.login
,但我希望它是backend.pages.login
。
还有其他方法可以实现吗?
我也尝试手动在路由器中添加视图路由,但无论如何安排,它都不会将Auth
识别为一个类。
注:这是Laravel 5.3版本。
提前感谢。
我想要改变Laravel Auth的默认登陆视图。之前的建议是修改位于/vendor目录下相应控制器内部的路径,然而这是一个合作项目,因此不能修改供应商文件。
Laravel Auth的默认视图为auth.login
,但我希望它是backend.pages.login
。
还有其他方法可以实现吗?
我也尝试手动在路由器中添加视图路由,但无论如何安排,它都不会将Auth
识别为一个类。
注:这是Laravel 5.3版本。
提前感谢。
在App\Http\Controllers\Auth\LoginController
中定义一个名为showLoginForm()
的函数,如下所示:
public function showLoginForm()
{
return view('custom.login');
}
它覆盖了trait Illuminate\Foundation\Auth\AuthenticatesUsers
中定义的函数showLoginForm
。
注意:在Laravel 5.3中,函数名称从getLogin
更改为showLoginForm
。
既然问题已经得到解答,我将为当前版本的Laravel提供相同的示例。
如果您使用的是Laravel 5.6及以上版本,则应将此功能放置在
app/Http/Controllers/Auth/LoginController.php
public function showLoginForm()
{
return view('custom.login');
}
Route::get('login/{page?}', 'Auth\LoginController@showLoginForm')->name('login');
public function showLoginForm($page = null)
{
if(isset($page)){
// do something
// example: return view('auth.login', compact('page'));
}
return view('auth.login');
}
php artisan make:auth
public function showLoginForm()
{
return view('login');
}
特性 AuthenticatesUsers { 使用 RedirectsUsers, ThrottlesLogins;
/**
* Show the application's login form.
*
* @return \Illuminate\View\View
*/
public function showLoginForm()
{
return view('front.login'); //you can change every path you want
}
RegistersUsers
文件解决了它 :) - StevenThelin