2013-02-05 14 views
6

Ciao ho avvertimento stringa nel registro mentre inserimento e l'aggiornamento di azioneImpossibile impostare l'attributo non sicuri

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

Regole per il modello

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'), 
    ); 
} 

non riesco a capire il motivo per cui ho questo worning. Ho regola per campo logo e avere l'opzione allowEmpty per esso

risposta

16

CFileValidator è per difetto pericoloso, dal docs:

sicuro proprietà (disponibile da v1.1.12) $ booleano pubblico sicuro;

se gli attributi elencati con questo validatore devono essere considerati sicuri per l'assegnazione massiccia. Per questo validatore è impostato su false.

Quindi impostare l'attributo di sicurezza su true

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

Grazie !!!!!! – dr0zd

3

È necessario impostare safe attributo CFileValidator true

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

Grazie !!!!!! – dr0zd

0

In Yii2

possibili cause si ottiene questo errore a causa del 'enctype' modulo non è impostato correttamente per il caricamento dei file.

Failed to set unsafe attribute 'id' in 

abilitare il modulo multipart/form-data

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