Cakephp导航栏:用模型中的数据填充元素


Cakephp Navigation Bar: Populate in an Element with Data from a Model

我正试图为我的网站创建一个导航栏,它将从Model的数据库表中获取信息。导航栏目前在Element中实现,并具有硬编码链接。到目前为止,我拥有的是:

Photo控制器中,我有这样的:

public function get_all() {
    return $this -> Photo -> find("all");
}

在header.ctp Element中,我有以下内容:

<ul>
    <?php
        $photos = $this -> Photo -> get_all();
        foreach($photos as $photo) {
            ?>
            <li><?= $this -> Html -> link($photo["Photo"]["title"], array("action" => "view", $photos["Photo"]["id"])) ?></li>
            <?php
        }
    ?>
</ul>

我还是Cakephp的新手;我应该做什么/更改什么才能从元素访问数据库表?

您希望在元素中使用requestAction来请求控制器向您提供模型中的列表。

你就快到了。

 <ul>
     <?php
         $photos = $this->requestAction(array('controller'=>'photos','action'=>'get_all'));
         foreach($photos as $photo) {
             ?>
             <li><?= $this -> Html -> link($photo["Photo"]["title"], array("action" =>      "view", $photos["Photo"]["id"])) ?></li>
             <?php
         }
     ?>
 </ul>