主に 2 つのテーブルで構成されるデータベース駆動型のナビゲーションがあります。これmenus
はmenu_items
、純粋に「静的」リンクではうまく機能しますが、動的リンク ( login/logout ) が必要です。
私menu_items
のテーブルは、管理者に手動で追加されたページへのリンクで構成されています。したがって、「動的」リンクを処理できるように、テーブルとモデルを調整する必要があります。
menu_items テーブルのスキーマは次のとおりです。
CREATE TABLE `menu_items` (
`id` int(11) NOT NULL auto_increment,
`menu_id` int(11) default NULL,
`label` varchar(250) default NULL,
`page_id` int(11) default NULL,
`link` varchar(250) default NULL,
`position` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8
メニュー ID は別のテーブルに対応するため、たとえば 1 はプライマリ ナビゲーション、2 はユーティリティ ナビゲーションになります。位置とは、メニュー項目が表示される各メニューに対する相対的な順序を指します。リンクは、「/user/login」などの単なるフィールドです。
各メニューをループしてナビゲーション コンテナを作成し、Zend Navigation を使用しています。
ログイン領域に使用しているロジックは次のとおりです。これを移動して、ダイナミック ナビゲーションに組み込む必要があります。
<?php if($this->identity == null) { ?>
<p><a href='/user/login'>Login</a></p>
<?php }else{ ?>
<p>Welcome back <?php echo $this->identity->first_name;?></p>
<p>To log out <a href='/user/logout'>click here</a></p>
<?php } ?>
メニュー項目ごとにアクセス レベルの新しい列を追加し、Menu モデルを更新して、ユーザーがログインしているかどうかを説明し、メニュー項目の新しいアクセス列の値、またはそれらに沿った何かをクエリする必要があるようです。行。誰にも提案はありますか?