虚拟属性

时间:2017-01-14 23:13:57

标签: activerecord yii yii2

我在模型

中定义了一个虚拟属性
$estates = Estates::find()->asArray()->all();

我在控制器中获得了数据:

print_r($estates)

在视图中:

if 'keyword' in str(dip):

但这个属性只能在视图中显示

谢谢你的时间!

2 个答案:

答案 0 :(得分:0)

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

$Pictures = '1.jpg';

或在规则中

[['Pictures'], 'default', 'value' => '1.jpg'],

甚至在找到

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

    return parent:: afterFind();
}

答案 1 :(得分:0)

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

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

或隐含地由@Ripper建议分配验证规则,例如:

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