0
プロジェクトの要件に最も適した方法を見つけることに問題があります。Laravel - 特定のページのCMS
システムに現在存在するroutes
/resources
の束があります。私はいくつかのページのCMSを開発していますが、現在のページはすべてresources
のままで、以前と同じ機能をすべて備えていなければなりません。
1. User enters `/users`
2. Checks to see if `/users` is inside the `Pages` table
-> No - (Return the Route::resource('/users))
-> Yes - Returned `Dynamic.blade.php` with the content from the table.
のIが要求されたページが内にない場合、私は、ビュー自体を返す可能性があるためRoute::resource
を返すことができないされたよ。ここで
は私が達成したいの手順ですテーブルが存在しない場合は、特定のエンドポイントに対してResource
を返すことが可能かどうかはわかりません。あなたはこのような何かを行うことができ、インデックス機能では、あなたのRoute::resource('users', 'ControllerName')
に関連付けられているあなたのコントローラ内部
返信いただきありがとうございます。私はこれがどのように機能するのか見てから、ルートのレベルでそれを行うことをもっと考えていましたが、コードの重複が多いでしょうか?つまり、各コントローラーについて、本質的にこれを複製する必要があります。 'index'メソッドが入力されたことを聞く方法はありませんか? – Phorce
ルートレベルで、 'Route :: resource()' Route :: get( 'users'、function(){}) 'の下で' resource'メソッド呼び出しをオーバーライドすることができます。もし私が正しいのですが、あなたは特に呼び出される 'UsersController @ index'メソッド(または名前を付けたもの)を聞きたいと思っていますか?私はこれを今見ているが、私は自分の経験でこのような必要性に遭遇していない。個々のリソースコントローラの@indexを複製しますか?もしそうなら、コードの重複を防ぐために、特性や他のクラスを実装することができます。 –
私はちょっと見たことがあります。ルートレベルで聞く必要がある場合は、ルートが解決されたときにイベントリスナーを作成するのが最善の方法かもしれません。同様のコード例(layer7):https://laracasts.com/discuss/channels/tips/how-tocount-every-time-a-route-is-called –