Необходимо использовать кеш Redis, кеш файлов и базы данных не поддерживает теги()
Адрес загрузки Windows Redis: http://pan.baidu.com/s/1i56thcD
Быстро используйте кеш Redis и кеш Redis в lv5: https://laravel-china.org/topics/877
Пожалуйста, приобретите шаблон интерфейса самостоятельно. В случае обнаружения нарушений свяжитесь с автором.
Расширение роли прав пользователя: zizaco/entrust
расширение Redis: predis/predis
В меню выберите расширение активации: hieu-le/active
Расширение базы данных: формат массива, возвращаемый запросом prettus/l5-repository
Описание зависимостей архитектуры: http://oomusou.io/laravel/laravel-architecture/
API jQuery DataTables для Laravel: yajra/laravel-datatables-oracle
Расширение чтения журнала: конфигурация журнала приложения arcanedev/log-viewer
'log' => env('APP_LOG', 'daily'),
Расширение обработки изображений: intervention/image
Расширение PHP Redis
Расширение PHP cURL
Расширение PHP OpenSSL
Информация о файле PHP необходима для расширения модуля управления материалами.
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
для генерации ключа.
4. Управляйте миграцией и населением
5. php artisan migrate --seed
Установка завершена
Демо-адрес: http://admin.amyair.cn
Тестовый аккаунт: зарегистрируйтесь прямо в правом верхнем углу.
1. Расширение управления разрешениями не использует расширение базы данных l5.
2. Фоновое левое меню автоматически соответствует выбранному состоянию. Все маршруты на веб-сайте должны быть названы, а префиксы имен маршрутов в одном и том же пункте меню одинаковы, например: admin.index
, admin.create
, admin.show
, admin.edit
и т. д., тип ресурса Маршрутам присваиваются имена автоматически. Имена маршрутов, оканчивающиеся на индекс, отображаются в левом меню на заднем плане. Используйте route();
когда программа совершает направленный прыжок. Если разрешения подкатегорий в меню верхнего уровня запрещены, добавьте разрешения пользователя для меню верхнего уровня и установите их так, чтобы у пользователя не было разрешений и меню не отображалось. Принцип отображения фонового меню заключается в запросе разрешений пользователя через uri меню. Если разрешение установлено, проверьте, есть ли разрешение. Если нет, оно не будет отображаться. Если оно не установлено, по умолчанию не требуется никаких разрешений. . URI, установленный для пунктов меню с подклассами, не будет выводиться в формате html, а будет выводить только JavaScript:; поэтому он не сообщит об ошибке, если для него установлено несуществующее имя маршрута. URI без подменю будет анализироваться с помощью. функция маршрута(). Если имя маршрута не существует, будет сообщено об ошибке.
3. Хлебные крошки на странице записываются в языковой пакет. Имя в языковом пакете соответствует значению Route::currentRouteName AppPresentersAdminCrumbsService
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);
или
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
, автоматически создает файлы модели, файлы миграции базы данных, два файла в репозитории, файлы поставщиков, при необходимости генерирует файлы Presenter, Validator и Controller.
php artisan make:repository name
, сгенерируйте файлы модели, файлы миграции базы данных и два файла в репозитории.