Dwij LaraAdmin多角色登录:如何自定义登录控制器?
自定义Dwij LaraAdmin(v1.0.40)登录控制器的实现方法
环境说明
- 基础框架:Laravel 5.2
- 使用包版本:Dwij LaraAdmin 1.0.40
- 项目依赖版本:
"require": { "php": ">=5.5.9", "laravel/framework": "5.2.*", "dwij/laraadmin": "1.0.40" }
问题描述
遍历项目本地文件夹未找到登录相关控制器,需实现自定义登录控制器的方法。
实现步骤
LaraAdmin的核心控制器存放于vendor/dwij/laraadmin/src/Controllers目录中,直接修改该目录文件会导致包更新时修改丢失,因此采用继承核心控制器+重写路由的方式实现自定义:
1. 创建自定义登录控制器
在项目的app/Http/Controllers目录下新建CustomLoginController.php,代码示例如下:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Dwij\LaraAdmin\Controllers\LAuthController; class CustomLoginController extends LAuthController { // 重写登录验证逻辑 public function login(Request $request) { // 在此添加自定义逻辑,比如额外字段验证、登录日志记录等 // 如需保留原逻辑,直接调用父类方法;如需完全自定义,编写自己的登录逻辑 return parent::login($request); } // 自定义登录成功后的跳转路径 protected function redirectPath() { return '/admin/dashboard'; // 根据需求修改跳转地址 } }
2. 重写登录路由
修改项目的app/Http/routes.php(Laravel 5.2路由文件),替换LaraAdmin默认的登录路由:
// 注释或删除LaraAdmin默认登录路由(若存在) // Route::get('/admin/login', '\Dwij\LaraAdmin\Controllers\LAuthController@showLoginForm'); // Route::post('/admin/login', '\Dwij\LaraAdmin\Controllers\LAuthController@login'); // Route::get('/admin/logout', '\Dwij\LaraAdmin\Controllers\LAuthController@logout'); // 添加自定义登录路由 Route::get('/admin/login', '\App\Http\Controllers\CustomLoginController@showLoginForm'); Route::post('/admin/login', '\App\Http\Controllers\CustomLoginController@login'); Route::get('/admin/logout', '\App\Http\Controllers\CustomLoginController@logout');
3. 自定义登录视图(可选)
若需要修改登录页面样式或结构,复制vendor/dwij/laraadmin/src/resources/views/auth/login.blade.php到项目的resources/views/vendor/laraadmin/auth/目录下,修改该本地视图文件即可,Laravel会优先加载项目目录下的视图资源。
内容的提问来源于stack exchange,提问作者vicky
相关产品推荐
相关产品推荐

