在CDetailView Yii框架中显示多个图像/链接

时间:2014-02-19 11:05:28

标签: php yii cdetailview

帮助 我整天都在冲浪,找不到话题,如何在CDetailView中显示多个图像。 我的情况如下:

  1. 我上传了多张图片,图片jpg文件存储在 / images / doc目录。
  2. 我已经在单元格中指定了图像的路径,意味着单元格包含 三个以逗号分隔的文件名:abc.jpg,xyz.jpg,abaca.jpg。
  3. 我想在CDetailView中显示可点击打开的链接 新标签浏览器中的图像。
  4. 我尝试过这个脚本:

    array(
                        'name'=>'File Link',
                        'type'=>'raw',
                        'value'=> Links of abc,  
                                           xyz,
    

    并且这也是为了显示图像

    $document= CHtml::encode($model->Document);
    $file = str_getcsv($document ,",");
    
    CDetailView中的

        array(
                'name'=>'Image',
                'type'=>'raw',
                'value'=>link to $file[1]
                ),
    
     array(
                'name'=>'Image',
                'type'=>'raw',
                'value'=>link to $file[2]
                ),
    
     array(
                'name'=>'Image',
                'type'=>'raw',
                'value'=>link to $file[3]
                ),
    

    但当我点击浏览器无法识别的链接时,结果并不像我预期的那样。

    我希望这样的结果:它应该是动态形式,可能正在使用'foreach'语句 如何使用它我没有得到它 ... ...

    File Link : abc.jpg
                    xyz.jpg
                    abaca.jpg <== each must be clickable to the location of the image
    

    ... ...

    请帮助 此致

    和Sandeep

2 个答案:

答案 0 :(得分:0)

如果我理解你的观点,你需要每行有多个图像,对吗?

为value属性设置unanymouse函数并返回图像链接:

'value' => function($data){ // here $data represents your model
   $link = '';
   if(!empty($data->images))
       foreach($data->links as $l)
       {
           $link .= CHtml::link(CHtml::encode($file[$i]),Yii::app()->baseUrl . '/images/' . $file[$i]) . '<br />';
       }
   return $link;
}

答案 1 :(得分:0)

感谢您的帮助,简单而又最好的方式....... 这里是我的代码文档,在数据库中有多个图像,一个属性有文件夹

模型中的功能

public function getDocument($model)
{
    $link = '';
    $attribute=CHtml::encode($model->documents);
    $file = str_getcsv($attribute ,",");
    if(!empty($model->documents))
    foreach($file as $i=> $record)
    {
        $link .= CHtml::link(CHtml::encode($file[$i]),Yii::app()->baseURL . '/Documents/' . $file[$i]) . '<br />';
    }
    return $link;
}

在视图小部件CDetailView

array(
    'name'=>"Uploaded Document ",
    'value'=> $model->getDocument($model),
    'type'=>'raw'   
    ),