2016-12-07 3 views
-1

私は管理パネルを持っているウェブアプリケーションを構築しています。私はLaravelを使ってこのアプリケーションを構築しました。私はLaravelを "Caffeinated Modules"パッケージで拡張し、独自のコントローラ、ビュー、モデルなどを持つモジュールを持つことも可能にしました。ウェブアプリケーション用の管理パネル、他のモジュールをフックして機能を拡張する方法

Now。私はすべてのコアとベースを "管理"モジュールにしたいと思っています。管理モジュールは、アプリケーションの管理パネルでなければなりません。

問題が発生しました。私は他のモジュールが例えば管理メニューにフックできるように、アプリケーションをどのように構造化するかを考え出すのが難しいです。また、他のモジュールを作成する方法も、実際に実行されているコードを処理できる管理パネル内にページがあります。基本的に他のモジュールと管理パネルとの対話方法。

たとえば、ブログモジュールは、ブログ投稿の追加/編集/削除管理を追加する必要があります。しかし、私はすべてのロジックを管理モジュールに単純に入れて、ブログモジュール(および他のすべてのモジュール)に独自の管理ロジックが含まれるようにしたい。プラグインでCMSを拡張すると、WordPressやMagentoの仕組みと少し似ています。

答えて

0

ルート用に管理ミドルウェアを作成し、任意の方法でコードを記述することができます。管理ミドルウェア内の管理パネルに必要なURL(ルート)を入れるだけです。

AdminMiddle

namespace App\Http\Middleware; use Illuminate\Support\Facades\Auth; use Closure; class AdminMiddle { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if(Auth::user()->account->role!=="super_admin"){ return redirect('/access-denied'); } return $next($request); } }

今すぐあなたのkernel.phpに

このミドルウェアを入れて使用していることを、laravelのバージョンを投稿してください?

管理パネル用と通常のユーザルートのすべてのルートに置く管理ミドルウェアは、(何の関係も)ではないとして残す

+0

こんにちは、答えてくれてありがとう。私は最新のLaravel 5.3を使用しています。あなたはミドルウェアを使用することを意味し、各モジュールは独自の管理ルートなどを定義しますか? – EnergyStar

+0

ええ、あなたは、ユーザーがログイン権を持ち、許可の権利に基づいてモジュールにアクセスできる同じページが必要ですか? – webDev

+0

「はい」の場合は、DB上で動的にモジュール列挙型を作成し、ルート上のモジュールをチェックしてください。ユーザーがそのモジュールを持っていれば、ユーザーはそのモジュールを取得します。同様に、アクセス権を付与するかどうかのビューを確認することもできます。 – webDev

関連する問題