cakephp将变量传递给home.ctp

时间:2018-08-28 10:58:22

标签: variables cakephp model-view-controller foreach

借助cakephp,我正在制作一个简单的幻灯片。

在我的PagesController中,我编写home操作,如下所示:

public function home(){
    // slider
    $this->loadModel('CmsStoreSlider');
    $cmsStoreSlider = $this->CmsStoreSlider->find('all')->toArray();
    $this->set(compact('cmsStoreSlider'));
    $this->set('_serialize', ['cmsStoreSlider']);
}

...并且在我的Pages / home.ctp中,我尝试调用$ cmsStoreSlider,但是没有运气。

<?php foreach ($cmsStoreSlider as $cmsStoreSlider): ?>
           <img src="<?= $cmsStoreSlider->image; ?>" alt="Imagem do slider">
<?php endforeach; ?>

图片未显示,因为cakephp表示 foreach附带无效的参数。我做了一个var_dump并说$ cmsStoreSlider是一个未定义的变量。

任何解决方案。我是新来的蛋糕,也许我的逻辑中缺少某些东西。

Ps。创建实体和表模型。

1 个答案:

答案 0 :(得分:0)

默认情况下,Cakephp将Pages控制器的显示操作作为主页。显示功能管理页面和子页面本身,这就是为什么您会出错。您都可以在/config/routes.php

中更改默认主页。
 $routes->connect('/', ['controller' => 'Pages', 'action' => 'home']);

OR

从显示操作中删除代码

class PagesController {
    function display()
    {
        // default controller code here
        // your custom code here
    }
}