Redis-Cache muss verwendet werden, Datei- und Datenbank-Cache unterstützen keine Tags()
Download-Adresse für Windows Redis: http://pan.baidu.com/s/1i56thcD
Verwenden Sie schnell den Redis-Cache und den Redis-Cache in Lv5: https://laravel-china.org/topics/877
Bitte erwerben Sie die Frontend-Vorlage selbst. Bei Verstößen wenden Sie sich bitte an den Autor.
Rollenerweiterung für Benutzerberechtigungen: zizaco/entrust
Redis-Erweiterung: predis/predis
Wählen Sie im Menü die Aktivierungserweiterung aus: hieu-le/active
Datenbankerweiterung: Array-Format, das von prettus/l5-repository
-Abfrage zurückgegeben wird
Beschreibung der Architekturabhängigkeit: http://oomusou.io/laravel/laravel-architecture/
jQuery DataTables-API für Laravel: yajra/laravel-datatables-oracle
Protokollleseerweiterung: arcanedev/log-viewer
App-Protokollkonfiguration 'log' => env('APP_LOG', 'daily'),
Bildverarbeitungserweiterung: intervention/image
PHP Redis-Erweiterung
PHP cURL-Erweiterung
PHP OpenSSL-Erweiterung
Zur Erweiterung des Materialverwaltungsmoduls wird PHP-Dateiinfo benötigt
http://datatables.club/
https://datatables.yajrabox.com
Inline-Bearbeitung: https://vitalets.github.io/x-editable/docs.html
https://github.com/DukeAnn/Laradmin/blob/master/UpdateLog.md
1. Ziehen Sie den Code nach lokal,
2. composer install
3. Stellen Sie die .evn
Konfigurationsdatei so ein, dass eine Verbindung zur Datenbank und zum Standard-E-Mail-Sendeserver hergestellt wird, legen Sie APP_URL=http://laradmin.app
fest und führen Sie php artisan key:generate
aus, um den Schlüssel zu generieren.
4. Führen Sie Migration und Bevölkerung durch
5. php artisan migrate --seed
Installation abgeschlossen
Demo-Adresse: http://admin.amyair.cn
Testkonto: Registrieren Sie sich direkt oben rechts
1. Die Berechtigungsverwaltungserweiterung verwendet nicht die l5-Datenbankerweiterung.
2. Das linke Hintergrundmenü entspricht automatisch dem ausgewählten Status. Alle Routen auf der Website müssen benannt werden, und die Routenbenennungspräfixe unter derselben Menüoption sind konsistent, wie zum Beispiel: admin.index
, admin.create
, admin.show
, admin.edit
usw., Ressourcentyp Routen werden automatisch benannt. Die Routennamen, die mit „Index“ enden, werden alle im linken Menü im Hintergrund angezeigt. Verwenden Sie route();
wenn das Programm einen Richtungssprung macht. Wenn die Berechtigungen der Unterkategorien im Menü der obersten Ebene verboten sind, fügen Sie bitte die Benutzerberechtigungen des Menüs der obersten Ebene hinzu und legen Sie fest, dass der Benutzer keine Berechtigungen hat und das Menü nicht angezeigt wird. Das Prinzip der Hintergrundmenü-Anzeige besteht darin, Benutzerberechtigungen über die Menü-URI abzufragen. Wenn die Berechtigung festgelegt ist, wird sie nicht angezeigt. Wenn sie nicht festgelegt ist, besteht keine Berechtigungsanforderung . Die für Menüelemente mit Unterklassen festgelegte URL wird nicht in HTML ausgegeben, sondern nur ein JavaScript:;, sodass kein Fehler gemeldet wird, wenn sie auf einen nicht vorhandenen Routennamen festgelegt ist. Die URL ohne Untermenü wird mit analysiert Die Funktion route() Wenn der Routenname nicht vorhanden ist, wird ein Fehler gemeldet.
3. Die Breadcrumbs in der Seite werden in das Sprachpaket geschrieben. Der Name im Sprachpaket entspricht dem Wert von Route::currentRouteName();
Die Breadcrumbs werden von der Dienstinjektion AppPresentersAdminCrumbsService
generiert AppPresentersAdminCrumbsService
, das nicht im Sprachpaket definiert ist, zeigt direkt den Schlüsselwert des Sprachpakets an.
4. Das Schließen des Routings kann nicht zum Routing verwendet werden. Andernfalls wird Route::currentRouteName();
nicht wirksam und alle Berechtigungsüberprüfungen und Menüsprünge verwenden den Routing-Namen.
5. Die Berechtigungsauthentifizierung verwendet Berechtigungen, um den Routennamen zu binden und ihn in der Middleware app/Http/Middleware/CheckPermission.php
zu überprüfen. Die Formularübermittlungsberechtigungen werden in app/Http/Requests
überprüft Es wird keine Berechtigungsbeschränkungen geben.
6. Beim Hinzufügen eines Menüs im Hintergrund ist es nicht erlaubt, einen vorhandenen Routennamen hinzuzufügen, da sonst die Website abstürzt. Da das Menü nach dem Hinzufügen links angezeigt wird, der Routenname jedoch nicht vorhanden ist, kann er nicht analysiert werden und es wird ein Fehler gemeldet. Wenn Sie versehentlich einen Fehler machen, führen Sie php artisan cache:clear
aus, um den Cache zu leeren und die falschen in die Datenbank eingefügten Daten zu löschen! Aktualisieren Sie einfach die Seite.
Das ###json-Format ist in der API üblich
{
"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 Rückgabewert code
Verarbeitungsergebnisstatuscode, erfolgreich ist 0, erforderlich
Die Sprungadresse nach erfolgreicher Verarbeitung url
kann leer gelassen werden.
Benachrichtigungsinformationen über den Abschluss der message
, optional
errors
Fehlerinformationen an
Durch pagination
angeforderte Paginierungsinformationen
Von data
angeforderte Dateninformationen
errors
und data
können nicht gleichzeitig existieren
Zurück zur Verwendung
return response(['code' => -1, 'message' => '账号或者密码错误'], 400);
automatisch in JSON konvertiert
oder
return response()->json(['code' => -1, 'message' => '账号或者密码错误'], 400);
AJAX-Analyse
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
, erstellt automatisch Modelldateien, Datenbankmigrationsdateien, zwei Dateien im Repository, Providerdateien, generiert optional Presenter-, Validator- und Controller-Dateien
php artisan make:repository name
, Generieren Sie Modelldateien, Datenbankmigrationsdateien und zwei Dateien unter Repository