3

私の中にこれらの行がありますactionCreate

if (isset($_POST['DpcioCbn'])) {
  print_r($_POST['DpcioCbn']);
  $model->attributes = $_POST['DpcioCbn'];
  print_r($model->attributes);
  die();
  ...
}

これはこれを返します:

Array
(
    [code] => 34324
    [bn_fa] => dfsf
    [bn_en] => sdf
    [cbn_fa] => sdfds
    [cbn_en] => f
    [description] => dsfsdfsdf
    [update_at] => 1391-03-16
    [active] => 1
)
Array
(
    [active] => 1
    [code] => 34324
    [bn_fa] => dfsf
    [bn_en] => sdf
    [cbn_fa] => sdfds
    [cbn_en] => f
    [update_at] => 1391-03-16
    [id] => 
    [description] => 
)

フィールドはどうなるdescription?Yii はこの割り当てについて何かありますか?

4

2 に答える 2

11

yii には、このタイプの代入に関する用語があることを発見しました: Massive Assignmentです。そのため、Massive Assignment を行うには、各フィールドの検証を明示的に定義する必要があります。

public function rules() {
  return array(
      ...
      array('description', 'safe'),
      ...
  );
}

http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/#hh2

フィールドによっては、検証するものが何もありませんよね?

間違い: ユーザーが $model にコピーする資格があると明示的に述べたフィールド値のみを割り当てることで、悪者がモデルを汚染しようとする悪ふざけを制限します。

フィールドに特定のデータ形式の検証がなくても、大規模代入中に属性をコピーする必要があることを Yii に伝える必要があります。これは「安全な」バリデータで行われます。

于 2012-06-18T16:05:08.323 に答える
1

間違い: ユーザーが $model にコピーする資格があると明示的に述べたフィールド値のみを割り当てることで、悪者がモデルを汚染しようとする悪ふざけを制限します。

フィールドに特定のデータ形式の検証がなくても、大規模代入中に属性をコピーする必要があることを Yii に伝える必要があります。これは「安全な」バリデータで行われます。 http://www.jili.ir

于 2013-11-20T08:11:36.890 に答える