Se debe utilizar la caché de Redis, la caché de archivos y bases de datos no admite etiquetas ()
Dirección de descarga de Windows Redis: http://pan.baidu.com/s/1i56thcD
Utilice rápidamente el caché de Redis y el caché de Redis en lv5: https://laravel-china.org/topics/877
Compre la plantilla de interfaz usted mismo. Si hay alguna infracción, comuníquese con el autor.
Extensión de rol de permisos de usuario: zizaco/entrust
extensión de redis: predis/predis
Seleccione la extensión de activación en el menú: hieu-le/active
Extensión de base de datos: formato de matriz devuelto por la consulta prettus/l5-repository
Descripción de la dependencia de la arquitectura: http://oomusou.io/laravel/laravel-architecture/
API jQuery DataTables para Laravel: yajra/laravel-datatables-oracle
Extensión de lectura de registros: configuración del registro de la aplicación arcanedev/log-viewer
'log' => env('APP_LOG', 'daily'),
Extensión de procesamiento de imágenes: intervention/image
Extensión PHP Redis
Extensión PHP cURL
Extensión PHP OpenSSL
Se necesita información de archivo PHP para expandir el módulo de gestión de materiales
http://datatables.club/
https://datatables.yajrabox.com
Edición en línea: https://vitalets.github.io/x-editable/docs.html
https://github.com/DukeAnn/Laradmin/blob/master/UpdateLog.md
1. Lleve el código a local,
2. composer install
3. Configure el archivo de configuración .evn
para conectarse a la base de datos y al servidor de envío de correo electrónico predeterminado, configure APP_URL=http://laradmin.app
y ejecute php artisan key:generate
para generar la clave.
4. Ejecutar migración y población.
5. php artisan migrate --seed
Instalación completada
Dirección de demostración: http://admin.amyair.cn
Cuenta de prueba: Regístrese directamente en la esquina superior derecha
1. La extensión de administración de permisos no utiliza la extensión de base de datos l5.
2. El menú de fondo izquierdo corresponde automáticamente al estado seleccionado. Se deben nombrar todas las rutas en el sitio web y los prefijos de nombres de rutas en la misma opción de menú son consistentes, como: admin.index
, admin.create
, admin.show
, admin.edit
, etc., tipo de recurso Las rutas se nombran automáticamente. Todos los nombres de rutas que terminan en índice se muestran en el menú de la izquierda en segundo plano. Utilice route();
cuando el programa realice un salto direccional. Si los permisos de las subcategorías en el menú de nivel superior están prohibidos, agregue los permisos de usuario del menú de nivel superior y configúrelo para que el usuario no tenga permisos y el menú no se muestre. El principio de visualización del menú en segundo plano es consultar los permisos del usuario a través del uri del menú. Si el permiso está configurado, verifique si hay permiso. De lo contrario, no se mostrará. Si no está configurado, no habrá ningún requisito de permiso de forma predeterminada. . El uri configurado para elementos de menú con subclases no se generará en html, solo generará JavaScript: por lo que no informará un error si se configura con un nombre de ruta inexistente. El uri sin submenú se analizará usando. la función route() Si el nombre de la ruta no existe, se informará un error.
3. Las rutas de navegación de la página se escriben en el paquete de idioma. El nombre en el paquete de idioma corresponde al valor de Route::currentRouteName();
(el nombre de la ruta se genera mediante la inyección del servicio AppPresentersAdminCrumbsService
). AppPresentersAdminCrumbsService
, que no está definido en el paquete de idioma. Muestra directamente el valor clave del paquete de idioma.
4. El enrutamiento de cierre no se puede usar para el enrutamiento. La ruta debe tener un nombre; de lo contrario, Route::currentRouteName();
5. La autenticación de permisos utiliza permisos para vincular el nombre de la ruta y verificarlo en el middleware app/Http/Middleware/CheckPermission.php
. Los permisos de envío del formulario se verifican en app/Http/Requests
. No habrá restricciones de permiso.
6. Al agregar un menú en segundo plano, no se permite agregar un nombre de ruta existente; de lo contrario, el sitio web fallará. Porque el menú se mostrará a la izquierda después de agregarlo, pero si el nombre de la ruta no existe, no se puede analizar y se informará un error. Si accidentalmente comete un error, ejecute php artisan cache:clear
para borrar el caché y eliminar los datos incorrectos insertados en la base de datos. Simplemente actualice la página.
### El formato json es común a la 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" : {
...
}
}
#### code
de descripción del valor de retorno json código de estado del resultado del procesamiento, exitoso es 0, requerido
La dirección de salto después de que url
se procese correctamente se puede dejar en blanco.
Información de notificación de finalización del procesamiento message
, opcional
errors
información de error
Información de paginación solicitada por pagination
Información de datos solicitada por data
errors
y data
no pueden existir al mismo tiempo.
Volver a usar
return response(['code' => -1, 'message' => '账号或者密码错误'], 400);
o
return response()->json(['code' => -1, 'message' => '账号或者密码错误'], 400);
análisis 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
, crea automáticamente archivos de modelo, archivos de migración de bases de datos, dos archivos en el Repositorio, archivos de Proveedores, opcionalmente genera archivos de Presentador, Validador y Controlador
php artisan make:repository name
, genera archivos de modelo, archivos de migración de bases de datos y dos archivos en el Repositorio