我在这里缺少什么。我有一个带有一堆变量的模型:
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。那么如何获得可选字段的值?
答案 0 :(得分:2)
如果您未向财产分配任何验证规则,则此属性为“不安全”。如果属性不安全,那么你不能在那里批量分配任何东西,但是你可以直接分配变量。
$model->item1 = $_POST{'car']['item1'];
如果您尝试批量分配变量,您还应该在Yii跟踪日志中看到警告。
要阅读属性,请直接从属性
中读取var_dump($model->item1);