必須使用redis緩存,文件和資料庫緩存不支援tags()
windows redis 下載網址:http://pan.baidu.com/s/1i56thcD
快速使用Redis 快取以及lv5 中的Redis 快取:https://laravel-china.org/topics/877
前端範本請自行購買,如有侵權請聯絡作者。
使用者權限角色擴充: zizaco/entrust
redis擴充: predis/predis
選單選取啟動擴充: hieu-le/active
資料庫擴充: prettus/l5-repository
查詢傳回的陣列格式
架構依賴說明:http://oomusou.io/laravel/laravel-architecture/
jQuery DataTables API for Laravel: yajra/laravel-datatables-oracle
日誌讀取擴充: arcanedev/log-viewer
app日誌配置'log' => env('APP_LOG', 'daily'),
圖片處理擴充: intervention/image
PHP Redis 擴充
PHP cURL 擴充
PHP OpenSSL 擴充
PHP fileinfo 拓展素材管理模組需要用到
http://datatables.club/
https://datatables.yajrabox.com
行內編輯:https://vitalets.github.io/x-editable/docs.html
https://github.com/DukeAnn/Laradmin/blob/master/UpdateLog.md
1.拉取代碼到本地,
2. composer install
3.設定.evn
設定檔連接資料庫和預設郵件發送伺服器,設定APP_URL=http://laradmin.app
,執行php artisan key:generate
產生key。
4.運行遷移和填充
5. php artisan migrate --seed
安裝完成
示範網址:http://admin.amyair.cn
測試帳號:直接右上角註冊即可
1.權限管理擴充不使用l5資料庫擴充。
2.後台左側選單自動對應選取狀態要求網站全部路由都要命名,並且同一選單選項下的路由命名前綴一致, 例如: admin.index
, admin.create
, admin.show
, admin.edit
等,資源型路由自動命名。 後台左側選單上顯示的都是index結尾的路由名稱。程式定向跳轉時使用route();
。 頂級選單下子分類的權限如果都被禁止了,請新增頂級選單的使用者權限,並設定成使用者無權限,就不在顯示該選單。 後台選單顯示原理,透過選單uri查詢使用者權限,如果設定了該權限,進行驗證是否有權限,沒有就不顯示,如果沒設定就預設無權限要求。 有子類別的選單項目設定的uri不會輸出在html中,只會輸出一個JavaScript:;所以設定成不存在的路由名稱也不會報錯,無子選單的uri會用route()函數解析, 如果路由名不存在會報錯。
3.頁面內麵包屑寫入語言包,語言包中名稱對應Route::currentRouteName();
的值(路由名稱),靠服務注入生成麵包屑AppPresentersAdminCrumbsService
,語言包中沒定義的直接顯示語言包的健值。
4.路由不可用閉包路由,路由必須命名否則Route::currentRouteName();
無法生效,權限驗證和選單跳轉全部使用的都是路由名稱。
5.權限認證使用權限綁定路由名稱在app/Http/Middleware/CheckPermission.php
中間件中驗證,表單提交權限放在app/Http/Requests
中驗證,如果路由名未綁定權限將不做權限限制。
6.後台新增選單時不允許新增為存在的路由名稱,否則網站會崩掉。因為新增完選單就會在左側顯示,但是路由名不存在就無法解析導致報錯。如果不小心寫錯,請執行php artisan cache:clear
清除緩存,並刪除資料庫中插入的錯誤資料!刷新頁面即可。
###json格式通用於API
{
"code" : 0 ,
"url" : http://...
"message" : " ... " ,
"errors" : [
{
"code" : 10000 ,
"field" : " user " ,
"message" : "用户 不存在。 "
}
],
"pagination" : {
"total" : 10 ,
"per_page" : 10 ,
"current_page" : 1 ,
"last_page" : 1 ,
"from" : 1 ,
"to" : 10
},
"data" : {
...
}
}
####json傳回值說明code
處理結果狀態碼,成功為0,必填
url
處理成功之後的跳轉地址,可不填
message
處理完成的通知訊息,可不填
errors
請求報錯訊息
pagination
請求的分頁訊息
data
請求的資料訊息
errors
和data
不能同時存在
返回使用
return response(['code' => -1, 'message' => '账号或者密码错误'], 400);
自動轉換成json
或者
return response()->json(['code' => -1, 'message' => '账号或者密码错误'], 400);
AJAX解析
var settings = {
type : "POST" ,
data : { } ,
url : url ,
dataType : "json" ,
success : function ( data ) {
if ( data . code == 0 ) {
window . location . href = data . url ;
}
} ,
error : function ( XMLHttpRequest ) {
$ ( '#login-error' ) . show ( ) ;
if ( XMLHttpRequest . responseJSON . code == - 1 ) {
$ ( '#login-error-message' ) . text ( XMLHttpRequest . responseJSON . message ) ;
} else {
$ ( '#login-error-message' ) . text ( "请填写邮箱和密码" ) ;
}
} ,
headers : {
'X-CSRF-TOKEN' : $ ( 'meta[name="csrf-token"]' ) . attr ( 'content' )
}
} ;
$ . ajax ( settings )
php artisan make:entity name
,自動建立模型文件,資料庫遷移文件,Repository下面的兩個文件,Providers文件,可選生成Presenter,Validator,Controller文件
php artisan make:repository name
,產生模型文件,資料庫遷移文件,Repository下面的兩個文件