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

Moh*_*ari 3 php yii

我有这些线actionCreate:

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

返回此:

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] => 
)
Run Code Online (Sandbox Code Playgroud)

现场会发生什么description?这个任务的任何事情是Yii吗?

Moh*_*ari 11

我发现yii中有一个关于这种类型的赋值的术语:Massive Assignment.因此,我应该明确定义每个字段的验证以进行Massive Assignment.

public function rules() {
  return array(
      ...
      array('description', 'safe'),
      ...
  );
}
Run Code Online (Sandbox Code Playgroud)

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

对于某些领域,没有什么可验证的,对吧?

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

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