2017-02-24 8 views
0

私はLaravel 5.4でシンプルなCMSをコーディングしています。Laravel 5でナビゲーションを効率的に作成して保存する方法は?

私はワードプレスのようなサブメニューのナビゲーション管理を持っていると思っています。私はページを複数のレベル(子供など)にすることができるように、複数階層でページをコーディングしました。MySqlでは、parent_idを含むあらゆる種類の情報を持つ「ページ」テーブルがあります。

コンテンツ作成者がページを選択してDBに保存することで、複数のページ上サイドバーサブナビゲーションを作成できる「ナビゲーションジェネレータ」を作成しようとしています。メニューを保存して、必要なページに収まるようにメニューを含めることができるようにします。

ここに問題があります。当初、私はそれは非常にシンプルにしたかった - (サブページ構造を維持するために)ちょうどJSON内のすべてにPageIdsを格納サブメニューモデルを作成:

Submenu Model 
id | name[string] | page_ids[json] 

は、しかし、私はこのアプローチの問題のかなり多くを参照してください。たとえば、ページ上に10ページからなる5つのメニューがある場合、sumbenuモデルを解析した後、データベースから各ページを個別に取得する必要があります(さらに、親のスラグを取得する必要があるためURLを作成します)。これは実際にはあまり効果がないようです。

私は、ユーザーが選択した後、それをデータベースに保存した後、ページ全体のコレクションを取得する方がよりスマートな方法になると想定します。そして、私はどのように接近するのか分かりません。

私はLaravel-menuプラグインを見て私はそれは私がこれに対処する方法上の任意のアイデアをいただければ幸い

を目指してるものを達成できるとは思いません。それを行う方法にはいくつかのベストプラクティスが必要ですが、リソースはまったく見つかりません。

答えて

0

私はここでこれに取り組んでいます。上記のようにすべてのページのIDを持つSubnavモデルを別に用意することにしました。次に、mysql呼び出しが多すぎるのを防ぐため、結果をキャッシュし、サブナビが更新されるたびにキャッシュをフラッシュします。

関連する問題