6

こんにちは私は挿入と更新のアクション中にログに警告文字列があります

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

モデルのルール

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

なんでこんなに着るのかわからない。ロゴフィールドのルールがあり、allowEmptyオプションがあります

4

3 に答える 3

16

docsから、 CFileValidatorはデフォルトで安全ではありません:

safe プロパティ (v1.1.12 以降で使用可能) public boolean $safe;

このバリデーターでリストされた属性が、大規模な割り当てに対して安全であると見なされるかどうか。このバリデーターのデフォルトは false です。

したがって、safe 属性を 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.'),
于 2013-02-05T14:02:49.593 に答える
3

safeの属性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.'),
于 2013-02-05T14:01:30.730 に答える
0

Yii2 で

このエラーが発生する原因として考えられるのは、ファイルのアップロード用にフォーム「enctype」が正しく設定されていないことです。

Failed to set unsafe attribute 'id' in 

フォーム multipart/form-data を有効にする

// Form
$form = ActiveForm::begin(['options'=>['enctype'=>'multipart/form-data']]);
于 2015-07-18T16:30:17.773 に答える