Speedy是基於 vue2 + bootstrap 的 laravel 管理後臺,能夠快速開發好一個許可權後臺,而且能夠非常方便的生成一級或者二級選單。
專案地址: https://github.com/HanSon/speedy
歡迎前來 star 以及提 issue !
安裝
laravel 5.1 以上:
composer require hanson/speedy
laravel 5.1 :
composer require hanson/speedy:~v0.5.0
配置
新增服務提供者
新增 Hanson\Speedy\SpeedyServiceProvider::class,
到 app.php
的 providers
中
釋出資源
php artisan vendor:publish --provider="Hanson\Speedy\SpeedyServiceProvider"
修改配置
Speedy 的配置在 config/speedy.php
中,涉及Model的名稱空間以及表名(Speedy 會根據配置生成 Models 以及 Migration)
return [
'class' => [
'namespace' => 'App\\Models\\',
'model' => [
'role' => 'Role',
'user' => 'User',
'permission' => 'Permission',
'permission_role' => 'PermissionRole',
]
],
'table' => [
'role' => 'role',
'permission' => 'permission',
'user' => 'users',
'permission_role' => 'permission_role',
],
// ...
]
安裝 Speedy
php artisan speedy:install
此命令將會
- 執行
migration
- 生成
models
- 執行
seeder
, 生成預設的角色admin
- 根據
menu
生成permission
- 在
web.php
生成相關路由
建立管理員
php artisan speedy:admin admin@email.com --create
或者設定已有使用者為管理員php artisan speedy:admin admin@email.com
(PS: 沒錯,這裡是 voyager 的程式碼)
也許你想直接用 laravel 自帶的 auth
php artisan make:auth
在生成的 LoginController
中, 修改 $redirectTo = '/home'
為 $redirectTo = '/admin'
記得更改 auth.php
的 providers
providers['users']['model'] => App\Models\User::class
執行
執行 php artisan serve
後, 訪問 http://localhost:8000/admin 開啟你的 Speedy
之旅吧
文件
Speedy 比較適合開發一些簡單許可權的後臺,不適合於複雜的許可權管理。
在 Speedy 中,一個選單將會生成一個許可權,當一個使用者使用者這個選單的許可權時,意味著這個使用者能夠使用該選單的所有功能。
選單
通過修改 config/speedy.php
的 menus ,然後執行 php artisan speedy:menu
將自動重新整理許可權、選單,並且賦予管理員所有許可權。
選單的屬性主要有
display
選單顯示名稱url
當前選單URLsub
是否二級選單,包含著多個子選單,當設定了此引數時,將會忽略引數url
target
跳轉方式,預設當前開啟
頁面
Speedy 的頁面在 resources/views/vendor/speedy
中,在 resources/views/vendor/speedy/layouts/app.blade
中,你可以給一些資源替換一些國內的CDN (使用預設的app.js 以及 app.css 會出現奇怪的問題,例如二級選單箭頭刷不出,JS 報錯,然而版本都是一致的)
中介軟體
Speedy 配有中介軟體 Hanson\Speedy\Http\Middleware\SpeedyAdminMiddleware
進行許可權驗證
Controller 可以繼承 Hanson\Speedy\Http\Controllers\BaseController
, 並重寫屬性 permissionName
為選單的key即可驗證許可權
語言
Speedy 內建了中文語言包,源自
在 config/app.php
中設定 locale
為 zh-cn
即可
resource/lang/zh-cn/view.php
為頁面的內容resource/lang/zh-cn/attribute.php
為表單驗證的欄位,可參考 config/validator
的key
表單驗證
表單驗證的 rules
位於 config/validator
中
Speedy Vs Voyager
Voyager
是一個很出色的 laravel 後臺管理包,能夠很好的在後臺新增所需要的表單,設定其欄位,達到不需要敲程式碼也能完成後臺開發工作。但本人覺得 Voyager
有點過於使用資源,導致每個頁面都會引入一堆的 CSS 以及 JS,要想去掉也是比較麻煩的事情。路由也比較龐大,也許在高配的開發電腦上體驗不到,但在我家用電腦跟公司比較下,差距就放大了很多倍了。
許可權思想不一樣是兩者最大的區別, Speedy 的許可權比較特殊,沒有細化到某個功能,只有某個模組,非常適合一些小型專案或者對許可權要求不復雜的專案。許可權並沒有直接在管理後臺中修改,而是通過修改選單時才生成許可權。只引入了 bootstrap
以及 vue 2
去控制頁面,盡最大可能簡化頁面。
PS:其實一開始,我只是想寫個sidebar,沒想到寫了個後臺
本作品採用《CC 協議》,轉載必須註明作者和本文連結