2017-01-14 5 views
0

Я определил виртуальный атрибут в моделиВиртуальный Атрибут

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

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

и я получил данные в контроллере:

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

в виду:

print_r($estates) 

, но только этот атрибут может не показаны в поле зрения

Спасибо за ваше время!

ответ

0

Постарайтесь определить его в декларации или в правилах.

$Pictures = '1.jpg'; 

Или в правилах

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

Или даже после того, как найти

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

    return parent:: afterFind(); 
} 
0

Вы должны объявить, что новые виртуальные атрибуты безопасно это можно сделать с помощью явного объявления в правила проверки достоверности моделей в например:

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

или неявно, как предложено @Ripper, определяющим правило проверки, например:

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