0

我正在使用 yii cdetail 小部件进行查看,但是..我想知道如果图像不存在如何找到方法。

我收到错误消息:尝试获取非对象的属性

<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
    'id',
            'name',
    'keywords',
   array(
    'label'=>'Image',
    'type'=>'raw',
    'value'=>$fileModel->name ? CHtml::image(Yii::app()->request->baseUrl.'/uploads/'.$model->logo_file_id.'/'.$fileModel->file_name.$fileModel->extension,"image_url") : null,
        ),

    'contact_name',
    'description',
    'status',
    'created',

),
)); ?>

谁能告诉我这里有什么问题?

4

2 回答 2

1

在模型中,您可以有一个 getter 方法返回图像,如果不存在则返回默认图像:

public function getImage() {
    $url = Yii::app()->request->baseUrl.'/uploads/'.$this->logo_file_id.'/'.$fileModel->file_name.$fileModel->extension;
    if(file_exists($url)){
        return $url
    }
    //return the default image for example
}

然后在你看来你会做

'value'=> CHtml::image($model->Image,"image_url"),
//Note that i'm calling "Image" and not getImage()

当然,这段代码必须改进,因为 $fileModel 不会在方法中定义,getImage但我不知道它的作用是什么!

于 2012-12-08T00:42:35.213 回答
0

请试试这个..

"value"=>'($data->picture !=="") ? CHtml::image(Yii::app()->request->baseurl."/upload/technician/".$data->picture,"",array(\'width\'=>100, \'height\'=>50)) : ""',

我希望它会帮助你...

于 2014-12-23T12:43:16.757 回答