2013-02-05 4 views
6

Witam mam ostrzeżenie ciąg w dzienniku natomiast wkładka i zmiana działaniaudało się ustawić atrybut niebezpieczne

2013/02/05 16:43:57 [warning] [application] Failed to set unsafe attribute "logo" of "Model". 

regulaminu dla modelu

public function rules() 
{ 
    return array(
     array('typeId, cityId, new', 'numerical', 'integerOnly'=>true), 
     array('title, url', 'length', 'max'=>255), 
     array('content, created, deleted', 'safe'), 

     array('url', 'url', 'on'=>'insert, update'), 

     array('typeId, cityId, title', 'required', 'on'=>'insert, update'), 

     array('logo', 'file', 'types'=>'jpg, jpeg, gif, png', 'maxSize'=>100*1024, 'allowEmpty'=>true, 'tooLarge'=>'{attribute} is too large to be uploaded. Maximum size is 100kB.'), 

     array('id, typeId, cityId, title, content, new, url, logo', 'safe', 'on'=>'search'), 
    ); 
} 

Nie mogę zrozumieć, dlaczego mam to worning. Mam regułę logo dziedzinie i mają opcję allowEmpty za nim

Odpowiedz

16

CFileValidator domyślnie jest niebezpieczna, z docs:

bezpieczne właściwość (dostępna od wersji 1.1.12) public boolean $ safe;

czy atrybuty wymienione w tym walidatorze należy uznać za bezpieczne do masowego przypisania. Dla tego walidatora domyślnie ustawiona jest wartość false.

Tak ustawiony bezpieczny atrybut prawdziwego

array('logo', 'file', 'types'=>'jpg, jpeg, gif, png','safe'=>true, 'maxSize'=>100*1024, 'allowEmpty'=>true, 'tooLarge'=>'{attribute} is too large to be uploaded. Maximum size is 100kB.'), 
+1

Dziękuję !!!!!! – dr0zd

3

trzeba ustawić safe atrybut CFileValidator do prawdziwej

array('logo', 'file', 'types'=>'jpg, jpeg, gif, png','safe'=>true, 'maxSize'=>100*1024, 'allowEmpty'=>true, 'tooLarge'=>'{attribute} is too large to be uploaded. Maximum size is 100kB.'), 
+0

Dziękuję !!!!!! – dr0zd

0

W Yii2

Możliwe przyczyny tego błędu można uzyskać ze względu na formę „enctype” nie jest ustawiony prawidłowo przesłanych plików.

Failed to set unsafe attribute 'id' in 

umożliwić forma multipart/form-data

// Form 
$form = ActiveForm::begin(['options'=>['enctype'=>'multipart/form-data']]);