0

表示にはyiicdetailウィジェットを使用していますが、画像が存在しない場合の方法を見つけたいと思っています。

エラーが発生しました:非オブジェクトのプロパティを取得しようとしています

<?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 に答える