2016-09-02 4 views
1

Ich habe ein benutzerdefiniertes Paket für Laravel 5.2 entwickelt und bin jetzt an dem Punkt, an dem ich die Authentifizierung implementiere.Auth Routen/Ansichten in Laravel-Paket?

Ich habe versucht, einen Ordner Auth zu meinem Ressourcen/Ansichten-Verzeichnis sowie die Controller in meinem Paket-Verzeichnis mit entsprechenden Namespaces benötigt. Er trifft die Controller, sieht die Ansicht jedoch nicht, da ein Fehler zurückgegeben wird, der besagt, dass [auth.login] nicht gefunden wurde.

ich die Eigenschaft versucht, das Hinzufügen overides zum AuthController als solche:

protected $loginView = 'packagename::auth.login'; 
protected $registerView = 'packagename::register.form'; 
protected $linkRequestView = 'packagename::link.request.view'; 
protected $resetView = 'packagename::reset.view'; 

Es ist jedoch immer noch versuchen, die Ansichten in der Haupt Laravel App-Verzeichnis zu schlagen, und das Paket nicht.

Was ist die beste Vorgehensweise, um Auth-Ansichten, Routen usw. innerhalb eines Laravel-Pakets einzurichten, damit es einen eigenen Admin-Bereich haben kann?

Antwort

1

Es gibt viele Strategien und es hängt davon ab, was (und wie groß) die Anwendung ist. Ich kann Ihnen ein Beispiel für die Benennung geben.

Views: {package-name}::{area}.{module}-{submodule?}.{action} 
Routes: {package-name}.{area}.{module}-{submodule?}.{action} 
Config: {package-name}.{area}.{rest-of-config-key} 

Lassen Sie mich erklären:

  1. {package-name} - Sie sollten immer vor setzen, dass Sie jedes Mal wissen, welches Paket nicht Ansicht/route/config aus ist.

  2. {area} - für exampla können sein: admin und user und front oder restricted und open. Es beschreibt die Ebene des Zugriffs des Benutzers (Front benötigt zum Beispiel keinen angemeldeten Benutzer). Dieser Teil eignet sich besonders zum Erstellen von Routengruppen und Filtern (aber auch zur Harmonisierung aller Elemente des Systems).

  3. {module} und {submodule} - werden Sie sagen, welche Art von Business-Logik Sie sind in

  4. {action} -. Ist nur ein Name der Aktion des Controllers

Also hier Sie gleichen Beispiele haben die oben:

route('mypostpackage.admin.post.index') 
route('mypostpackage.admin.post-comment.edit', [$id]) 

view('mypostpackage::admin.post.show') // in package: views/admin/post/index.blade.php 
view('authpackage::restricted.user-address.edit') 

Dies kann auch verwendet werden, um die Struktur der Dateien (Ansichten und Controller und andere App-Logik, die Sie in dieser Konvention verwenden) zu entwerfen.

Denken Sie daran, dass dies nur eine Basis für das Design ist, so dass Sie es wiederentscheiden können, was auch immer Sie mögen.

+0

Danke! Ich habe die folgende Struktur in meinem Paket implementiert und es war sehr sauber. –