【问题标题】:Virtual Attribute虚拟属性
【发布时间】:2017-01-14 23:13:56
【问题描述】:

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

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

        ]
    }
    public function getPictures(){
        $pics="1.jpg";
        return $pics;
    }

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

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

在视图中:

print_r($estates)

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

感谢您的宝贵时间!

【问题讨论】:

    标签: activerecord yii yii2


    【解决方案1】:

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

    $Pictures = '1.jpg';
    

    或者在规则中

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

    甚至在找到之后

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 2014-07-25
        • 2010-10-25
        相关资源
        最近更新 更多