如何将数据数组调用到home.ctp cakephp3

时间:2015-11-03 03:11:15

标签: php html cakephp

我是cakephp的新手。我正在尝试使用carousel构建主页。但是我想让幻灯片中的图像从幻灯片表数据库中调用。 下面是我在home.ctp中的轮播代码

<div class="mbr-box mbr-section mbr-section--relative mbr-section--fixed-size mbr-section--bg-adapted item dark center mbr-section--full-height active" style="background-image: url(<?= ($slide->thumbnail) ?>);">
                <div class="mbr-box__magnet mbr-box__magnet--sm-padding">
                    <div class=" container">
                        <div class="row"><div class="col-sm-8 col-sm-offset-2">
                            <div class="mbr-hero">
                                <h1 class="mbr-hero__text">Slide 2</h1>
                                <p class="mbr-hero__subtext">Description</p>
                            </div>
                            <div class="mbr-buttons btn-inverse mbr-buttons--center"><a class="mbr-buttons__btn btn btn-lg btn-danger" href="#">HERE</a></div>
                        </div></div>
                    </div>
                </div>
            </div>

style="background-image: url(<?= ($slide->thumbnail) ?>);"是我认为可以从数据库调用图像文件的代码(images / 17860481920x1200-165.jpg)。但我得到的只是一片空白。

任何人都可以帮助我。抱歉我的英语不好。

2 个答案:

答案 0 :(得分:2)

简单方法:

node_modules

这会创建两个文件,

View / Cell中的第一个CarouselCell.php

cake bake cell Carousel

在Template \ Cell \ Carousel文件夹中显示display.ctp。

在CarouselCell.php显示方法中添加:

<?php
namespace App\View\Cell;

use Cake\View\Cell;

/**
 * Carousel cell
 */
class CarouselCell extends Cell
{

    /**
     * List of valid options that can be passed into this
     * cell's constructor.
     *
     * @var array
     */
    protected $_validCellOptions = [];

    /**
     * Default display method.
     *
     * @return void
     */
    public function display()
    {
    }
}

在display.ctp

public function display()
{
 $this->loadModel('Slides');
 $slides = $this->Slides->find('all');
 $this->set('slides', $slides->toArray());
}

on home.ctp

<?php foreach($slides as $slide) { ?>
YOUR CAROUSEL HTML HERE
<?php } ?>

了解详情:http://book.cakephp.org/3.0/en/views/cells.html

答案 1 :(得分:0)

// First you pass data from the controller:
public function home() {
       $slider = array('img1.jpg','img2.jpg');
        $this->set('slider', $slider);
    }

app/View/Pages/home.ctp

<?php print_r ($slider); ?>