1

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

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。那么如何获得 OPTIONAL 字段的值呢?

4

1 回答 1

2

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

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

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

要读取属性,请直接从属性中读取

var_dump($model->item1);
于 2013-04-26T12:23:54.727 回答