我正在使用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',
),
)); ?>
有人可以告诉我这里有什么不对吗?
答案 0 :(得分: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
中定义,但我不知道它的作用是什么!
答案 1 :(得分:0)
请试试这个..
"value"=>'($data->picture !=="") ? CHtml::image(Yii::app()->request->baseurl."/upload/technician/".$data->picture,"",array(\'width\'=>100, \'height\'=>50)) : ""',
我希望它能帮到你......