2016-09-02 14 views
1

私はLaravel 5.2用のカスタムパッケージを開発していましたが、今は認証を実装しているところです。LaravelパッケージのAuthルート/ビュー

自分のresources/viewsディレクトリにAuthフォルダを追加しようとしました。また、適切な名前空間を持つパッケージディレクトリ内に必要なコントローラも追加しようとしました。コントローラにヒットしますが、[auth.login]が見つからないというエラーを返すので、ビューは表示されません。私はプロパティを追加しようとした

は、次のようなAuthControllerにoverides:

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

をしかし、まだパッケージをメインLaravelアプリのディレクトリにあるビューをヒットしようとしている、とされていません。

Authビュー、ルートなどをLaravelパッケージ内にセットアップして、独自の管理領域を持つことができるベストプラクティス/適切な方法は何ですか?

答えて

1

戦略は数多くあり、アプリケーションの種類(およびその大きさ)によって異なります。私はあなたに命名の例を与えることができます。

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

私に説明してみましょう:

  1. {package-name} - あなたはいつもあなたがビュー/ルート/設定を何パッケージ毎回から知っているだろうことを前に置いてください。

  2. {area} - exampla用することができます:adminuserfrontまたはrestrictedopen。ユーザーのアクセスレベルを記述します(たとえば、フロントにはログインしているユーザーは必要ありません)。この部分は、特にルートグループを作成するのに適しており、フィルタリングされます(システムのすべての要素を調和させるためにも)。

  3. {module}{submodule}は - あなたがしているビジネスロジックの種類を告げることになる

  4. {action} - 。だからここにあなたが同じ例があり、コントローラのアクション

の名前だけです上記:

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') 

これは、ファイルの構造(ビューとコントローラ、およびこの規約で使用するその他のアプリケーションロジック)の設計にも使用できます。

これは設計の基礎に過ぎないので、好きなように修正することができます。

+0

ありがとうございます!私はパッケージ内に以下の構造を実装しました。とてもきれいです。 –