我想要在我的主佈局中使用sjaakp \ cycle \ Cycle ::小部件以獲得橫幅幻燈片。將代碼直接放入主佈局時,效果相當不錯。 但爲了使佈局更具可讀性,我想放的代碼放到一個單獨的PHP文件,說_banner-滑動show.php和使用YII2將循環放在局部視圖中並在佈局中使用它 - 包括vs渲染?
<?php $this->render('_banner-slide-show');?>
,但它不工作。這些頁面是可見的,但橫幅幻燈片不會出現,並且頁面源代碼中沒有圖像的痕跡。
如果我使用
<?php include ('_banner-slide-show.php')
它工作得很好試。
我的問題是爲什麼它不適用於渲染?
這裏是_banner-滑動show.php代碼
<?php
use yii\data\ArrayDataProvider;
use yii\helpers\Url;
// $photos = scandir($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'banner', 1);
$photos = scandir($_SERVER['DOCUMENT_ROOT']
. DIRECTORY_SEPARATOR . '..'
. DIRECTORY_SEPARATOR . '..'.
'/images/admin/banner', 1);
$dataPhotos = array();
foreach ($photos as $photo) {
// array_push($dataPhotos, ['photo' => '@web/banner/' . $photo]);
$url=Url::to(['/image/view', 'filePath' => 'admin/banner/'.$photo]);
array_push($dataPhotos,['photo' => $url]) ;
}
array_pop($dataPhotos);
array_pop($dataPhotos); //remove . and ..
$dataProv = new ArrayDataProvider(['allModels' => $dataPhotos,
'pagination' => false]);
?>
<?=
sjaakp\cycle\Cycle::widget([
'dataProvider' => $dataProv,
'imgAttribute' => 'photo',
// 'captionAttributes' => ['photo'],
// 'overlayAttributes' =>['photo'],
'options' => [
'captionPlugin' => 'caption2',
'captionFxOut' => 'slideUp',
'captionFxIn' => 'slideDown',
'allow-wrap' => false,
'auto-height' => 0,
'fx' => 'fadeOut',
'timeout' => 8000,
'speed' => 2000,
// 'overlay' => '#ovl'
],
])
?>
<!-- <div id="ovl" class="cycle-overlay"></div> -->
你放置的_banner-滑動show.php?可能是你需要一個適當的路徑設置.. – scaisEdge
你確定_banner-slide-show.php在主文件夾中? – giovaZ
它被放置在與佈局main.php相同的文件夾中 – meaulnes