YII:除非有规则,否则验证不会填充模型?

时间:2013-04-26 11:48:46

标签: yii

我在这里缺少什么。我有一个带有一堆变量的模型:

class Car extends CFormModel
{  
  public $item1;
  public $item2;
}

如果我使用item1 =“one”和item2 =“two”发布表单,并在控制器中执行以下操作:

if(isset($_POST['Car'])) 
{ 

    $model->attributes = $_POST['Car']; 
    if($model->validate()) {

      print_r($model);
    ...
...

在我打印模型的位置,没有任何项目具有值。但我将此添加到我的模型中:

public function rules()
{
return array( array('item1', 'required'));
}

然后item1填充,但不填充item2。那么如何获得可选字段的值?

1 个答案:

答案 0 :(得分:2)

如果您未向财产分配任何验证规则,则此属性为“不安全”。如果属性不安全,那么你不能在那里批量分配任何东西,但是你可以直接分配变量。

$model->item1 = $_POST{'car']['item1'];

如果您尝试批量分配变量,您还应该在Yii跟踪日志中看到警告。

要阅读属性,请直接从属性

中读取
var_dump($model->item1);