2

私は Laravel 5.2 用のカスタム パッケージを開発してきましたが、現在は認証を実装しています。

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

プロパティのオーバーライドを AuthController に次のように追加してみました:

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

ただし、パッケージではなく、メインの Laravel アプリ ディレクトリにあるビューをヒットしようとしています。

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

4

1 に答える 1

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}- どのパッケージが view/route/config の元であるかを常に知ることができることを常に前に置く必要があります。

  2. {area}- たとえばadmin、 anduserおよびfrontまたはrestrictedandのいずれかopenです。ユーザーのアクセスのレベルを記述します (たとえば、front はログに記録されたユーザーを必要としません)。この部分は、特にルート グループの作成とフィルター処理に適しています (システムのすべての要素を調和させるためにも使用されます)。

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

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

これは単なるデザインのベースであるため、好きなように再デザインできます。

于 2016-09-02T13:09:22.063 に答える