Activerecord 虚拟属性

Activerecord 虚拟属性,activerecord,yii,yii2,Activerecord,Yii,Yii2,我在模型中定义了一个虚拟属性 public $Pictures; public function rules(){ return [ [['Pictures'], 'safe'], ] } public function getPictures(){ $pics="1.jpg"; return $pics; } 我在控制器中得到了数据: $estates = Estates

我在模型中定义了一个虚拟属性

public $Pictures;
    public function rules(){
        return [
            [['Pictures'], 'safe'],

        ]
    }
    public function getPictures(){
        $pics="1.jpg";
        return $pics;
    }
我在控制器中得到了数据:

$estates = Estates::find()->asArray()->all();
鉴于:

print_r($estates)
但仅此属性无法在视图中显示


谢谢你的时间

尝试在声明或规则中定义它

$Pictures = '1.jpg';
还是按规则

[['Pictures'], 'default', 'value' => '1.jpg'],
甚至在发现后

public function afterFind() 
{
    $this->Pictures = '1.jpg';

    return parent:: afterFind();
}

您必须声明新的虚拟属性是安全的,这可以通过模型验证规则中的显式声明来完成,例如:

public function rules()
{
    return [
       [['Pictures',], 'safe'],
    ];
 }
public function rules()
{
    return [
        [['Pictures',], 'string', 'max' => 32],
    ];
 }
或者按照@Ripper指定验证规则的暗示,例如:

public function rules()
{
    return [
       [['Pictures',], 'safe'],
    ];
 }
public function rules()
{
    return [
        [['Pictures',], 'string', 'max' => 32],
    ];
 }