常见问题汇总

关于自定义视图

如果有需要自己修改view,但是不方便直接修改laravel-admin的情况,可以用下面的办法解决

复制vendor/encore/laravel-admin/views到项目的resources/views/admin,然后在app/Admin/bootstrap.php文件中加入代码:

  1. app('view')->prependNamespace('admin', resource_path('views/admin'));

这样就用resources/views/admin下的视图覆盖了laravel-admin的视图,要注意的问题是,更新laravel-admin的时候,可能会遇到视图不存在的问题,这个需要自行解决

设置语言

完成安装之后,默认语言为英文(en),如果要使用中文,打开config/app.php,将locale设置为zh_CN即可。

自定义语言

如果需要修改laravel-admin的语言包,可以用下面的方式解决

复制vendor/encore/laravel-admin/lang到项目的resources/lang/admin,然后在app/Admin/bootstrap.php文件中加入代码:

  1. app('translator')->addNamespace('admin', resource_path('lang/admin'));

如果将系统语言locale设置为zh-CN,可以将resources/lang/admin目录下的zh_CN目录重命名为zh-CN即可,更新laravel-admin的时候,要做相应修改。

关于扩展自定义组件

laravel-admin默认引用了大量前端资源,如果有网络问题或者有不需要使用的组件,可以参考form组件管理将其移除。

关于富文本编辑器,由于静态资源包文件普遍太大,所以laravel-admin默认通过cdn的方式引用ckeditor,建议大家根据自己的需求扩展编辑器,自行配置。

关于前端资源问题

如果需要使用自己的前端文件,可以在app/Admin/bootstrap.php中引入:

  1. Admin::css('path/to/your/css');
  2. Admin::css('path/to/your/js');

自定义登录页面和登录逻辑

在路由文件app/Admin/routes.php中,覆盖掉登录页面和登录逻辑的路由,即可实现自定义的功能

  1. Route::group([
  2. 'prefix' => config('admin.prefix'),
  3. 'namespace' => Admin::controllerNamespace(),
  4. 'middleware' => ['web', 'admin'],
  5. ], function (Router $router) {
  6. $router->get('auth/login', 'AuthController@getLogin');
  7. $router->post('auth/login', 'AuthController@postLogin');
  8. });

在自定义的路由器AuthController中的getLoginpostLogin方法里分别实现自己的登录页面和登录逻辑。

参考控制器文件AuthController.php,视图文件login.blade.php

更新静态资源

如果遇到更新之后,部分组件不能正常使用,那有可能是laravel-admin自带的静态资源有更新了,所以需要手动去用vendor/encore/laravel-admin/assets的静态资源覆盖掉public/packages目录下的静态资源文件,覆盖完成之后不要忘记清理浏览器缓存.