什么会导致 $model-> 属性在 Yii 中无法获得正确的值


what can cause $model->attributes to not get correct values in Yii?

我的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吗?

我发现在yii中有一个关于这种类型的作业的术语:大规模赋值。因此,我应该为每个字段显式定义验证以进行大规模分配。

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

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

对于某些字段,没有什么可以验证的,对吧?

错误:仅分配用户显式具有的字段值 说有资格复制到$model,这限制了恶作剧 一个试图污染模型的坏人。

即使字段没有特定的数据格式验证,我们仍然 必须告诉 Yii 我们希望在 Massive 期间复制属性 分配。这是通过"安全"验证器完成的。

错误:通过仅分配用户明确表示有资格复制到$model中的字段值,这限制了坏人试图污染模型的恶作剧。

即使一个字段没有特定的数据格式验证,我们仍然必须告诉 Yii,我们希望在大规模赋值期间复制该属性。这是通过"安全"验证器完成的。http://www.jili.ir