pheye/voyager

基于 tcg/voyager:为控制组打造的Laravel Admin Package,简化您的开发生活并引导您的项目走向正确的方向

v0.11.1 2017-02-19 13:52 UTC

README

Laravel官方推出Nova管理后台后,经过测试,在设计上远优于Voyager。并且Voyager中长期存在的问题,在Nova那边已经得到解决。因此,改为使用Nova作为管理后台,本包不再维护。

改造说明

Voyager是一个非常优秀的项目,然而却有一些问题限制了它的使用:

  • 仍然是jQuery+前后端混合那一套,前端功能很难做得复杂
  • BREAD控制器不支持搜索、批量操作等功能
  • CMS方面,编辑器功能过弱,而在SEO等相关设置上又过于繁琐
  • 提示语言没有使用多语言机制
  • BREAD开启Server-Side时,不支持排序
  • 存在许多初级BUG:例如multiple images类型,只能增加不能删除,查看详情时也不能正常显示等等

等待官方修复太慢,同时按照目前发展趋势来看,与自己的期望还是有一些距离,于是自己做整改。解决上述问题。

具体修复问题:

  • Voyager::settings模块增加Boolean Type,增加voyager::settings <key>/ voyager::settings <name> <key> <type> -s命令获取和配置参数
  • 下拉框类型:如果使用了外键,比如users表的role_id指向Role,则User Model必须存在public function role_id(),但是一般我们都使用的是public function role(),通过在detailsrelationship下面增加method: "role"即可覆盖默认值。
  • 数字类型:增加"step: 0.01" 参数,以支持小数点的编辑。
  • 文本框类型:支持JSON格式的处理,当数据库字段类型为JSON,并且在Laravel中设置protected $casts=['content' => 'json']这样的处理时,Voyager会编辑时会报错。通过在选项中增加{"json": true},即可支持JSON数据的直接编辑。
  • 前端支持vue,并通过webpack打包管理
  • 生成权限、策略菜单

Voyager - 缺失的Laravel Admin

官方文档: https://the-control-group.github.io/voyager/

常用操作表: https://voyager-cheatsheet.ulties.com/

Laravel Admin & BREAD System (浏览、读取、编辑、添加、删除),适用于Laravel 5.3。

创建新的Laravel应用后,可以使用以下命令包含Voyager包:

composer require tcg/voyager

接下来,请确保创建一个新的数据库,并将数据库凭据添加到.env文件中

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

将Voyager服务提供者添加到config/app.php文件中的providers数组

'providers' => [
    // Laravel Framework Service Providers...
    //...
    
    // Package Service Providers
    TCG\Voyager\VoyagerServiceProvider::class,
    // ...
    
    // Application Service Providers
    // ...
],

最后,我们可以安装Voyager。您可以通过以下方式安装,包括或不包括示例数据。示例数据将包括1个管理员账户(如果没有现有用户),1个示例页面,4个示例帖子,2个类别和7个设置。

要无示例数据安装Voyager,只需运行

php artisan voyager:install

如果您选择带示例数据安装,请运行

php artisan voyager:install --with-dummy

现在一切准备就绪!

使用php artisan serve启动本地开发服务器,并访问https://:8000/admin

如果您选择了示例数据,应该已为您创建了用户,以下是其登录凭证

邮箱: admin@admin.com
密码: password

注意:只有在数据库中没有当前用户时,才会创建示例用户。

如果您没有选择示例用户,您可能希望将管理员权限分配给现有用户。这可以通过以下命令轻松完成

php artisan voyager:admin your@email.com

如果您没有安装示例数据,并且希望创建新的管理员用户,可以传递--create标志,如下所示

php artisan voyager:admin your@email.com --create

然后您将被提示输入用户名和密码。

生成扩展菜单

默认安装的后台没有权限相关的菜单,可以通过执行以下命令生成更多菜单。例如角色、权限、权限视图、策略

php artisan vendor:publish --provider='TCG\Voyager\VoyagerServiceProvider' --force
composer dump-autoload
php artisan db:seed --class=ExtendVoyagerAdminSeeder