Le cache Redis doit être utilisé, le cache de fichiers et de base de données ne prend pas en charge les balises()
Adresse de téléchargement Windows Redis : http://pan.baidu.com/s/1i56thcD
Utilisez rapidement le cache Redis et le cache Redis en niveau 5 : https://laravel-china.org/topics/877
Veuillez acheter le modèle frontal vous-même. En cas d'infraction, veuillez contacter l'auteur.
Extension du rôle d'autorisations utilisateur : zizaco/entrust
extension Redis : predis/predis
Sélectionnez l'extension d'activation dans le menu : hieu-le/active
Extension de base de données : format de tableau renvoyé par la requête prettus/l5-repository
Description de la dépendance de l'architecture : http://oomusou.io/laravel/laravel-architecture/
API jQuery DataTables pour Laravel : yajra/laravel-datatables-oracle
Extension de lecture de journal : configuration du journal de l'application arcanedev/log-viewer
'log' => env('APP_LOG', 'daily'),
Extension du traitement d'images : intervention/image
Extension PHP Redis
Extension PHP cURL
Extension PHP OpenSSL
PHP fileinfo est nécessaire pour étendre le module de gestion du matériel
http://datatables.club/
https://datatables.yajrabox.com
Édition en ligne : https://vitalets.github.io/x-editable/docs.html
https://github.com/DukeAnn/Laradmin/blob/master/UpdateLog.md
1. Tirez le code vers le local,
2. composer install
3. Définissez le fichier de configuration .evn
pour vous connecter à la base de données et au serveur d'envoi d'e-mails par défaut, définissez APP_URL=http://laradmin.app
et exécutez php artisan key:generate
pour générer la clé.
4. Gérer la migration et la population
5. php artisan migrate --seed
Installation terminée
Adresse de démonstration : http://admin.amyair.cn
Compte test : inscrivez-vous directement dans le coin supérieur droit
1. L'extension de gestion des autorisations n'utilise pas l'extension de base de données l5.
2. Le menu d'arrière-plan de gauche correspond automatiquement à l'état sélectionné. Toutes les routes sur le site Web doivent être nommées et les préfixes de dénomination des routes sous la même option de menu sont cohérents, tels que : admin.index
, admin.create
, admin.show
, admin.edit
, etc., les routes de type de ressource sont automatiquement nommées. Les noms de routes se terminant par index sont tous affichés dans le menu de gauche en arrière-plan. Utilisez route();
lorsque le programme effectue un saut directionnel. Si les autorisations des sous-catégories sous le menu de niveau supérieur sont interdites, veuillez ajouter les autorisations utilisateur du menu de niveau supérieur et définissez-le de manière à ce que l'utilisateur n'ait aucune autorisation et que le menu ne soit pas affiché. Le principe d'affichage du menu en arrière-plan consiste à interroger les autorisations de l'utilisateur via l'uri du menu. Si l'autorisation est définie, vérifiez s'il existe une autorisation. Sinon, elle ne sera pas affichée. Si elle n'est pas définie, il n'y aura aucune exigence d'autorisation par défaut. . L'uri défini pour les éléments de menu avec des sous-classes ne sera pas affiché en HTML, mais affichera uniquement un JavaScript :; il ne signalera donc pas d'erreur s'il est défini sur un nom de route inexistant. L'uri sans sous-menu sera analysé en utilisant. la fonction route(). Si Si le nom de la route n'existe pas, une erreur sera signalée.
3. Le fil d'Ariane dans la page est écrit dans le package de langue. Le nom dans le package de langue correspond à la valeur de Route::currentRouteName();
(le nom de la route) Le fil d'Ariane est généré par l'injection de service AppPresentersAdminCrumbsService
. AppPresentersAdminCrumbsService
, qui n'est pas défini dans le package de langue, affiche directement la valeur clé du pack de langue.
4. Le routage de fermeture ne peut pas être utilisé pour le routage. La route doit être nommée sinon Route::currentRouteName();
et toutes les vérifications d'autorisation et tous les sauts de menu utilisent le nom de routage.
5. L'authentification des autorisations utilise les autorisations pour lier le nom de la route et le vérifier dans le middleware app/Http/Middleware/CheckPermission.php
. Les autorisations de soumission du formulaire sont vérifiées dans app/Http/Requests
. il n'y aura aucune restriction d'autorisation.
6. Lors de l'ajout d'un menu en arrière-plan, il n'est pas autorisé d'ajouter un nom d'itinéraire existant, sinon le site Web plantera. Parce que le menu sera affiché à gauche après l'avoir ajouté, mais si le nom de l'itinéraire n'existe pas, il ne pourra pas être analysé et une erreur sera signalée. Si vous faites accidentellement une erreur, exécutez php artisan cache:clear
pour vider le cache et supprimer les mauvaises données insérées dans la base de données ! Actualisez simplement la page.
Le format ###json est commun à l'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 valeur de retour code
de description code d'état du résultat du traitement, succès est 0, obligatoire
L'adresse de saut une fois url
traitée avec succès peut être laissée vide.
Informations de notification de l'achèvement du traitement message
, facultatif
errors
des informations sur l'erreur
Informations de pagination demandées par pagination
Informations sur les données demandées par data
errors
et data
ne peuvent pas exister en même temps
Revenir à l'utilisation
return response(['code' => -1, 'message' => '账号或者密码错误'], 400);
ou
return response()->json(['code' => -1, 'message' => '账号或者密码错误'], 400);
Analyse 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
, crée automatiquement des fichiers de modèle, des fichiers de migration de base de données, deux fichiers sous le référentiel, des fichiers de fournisseurs, génère éventuellement des fichiers de présentateur, de validateur et de contrôleur
php artisan make:repository name
, génère des fichiers de modèle, des fichiers de migration de base de données et deux fichiers sous Repository