【发布时间】:2013-02-05 18:06:33
【问题描述】:
我想在我的模型中设置字段的值。字段(源)在数据库中,但表单上没有用于捕获数据的字段。我想在不创建隐藏表单字段的情况下设置字段的值。这可能吗?
谢谢!
//in controller
public function actionTest()
{
$model=new TestForm();
$src = 'hello';
$model->source($src);
echo $model->source; // hello
$this->render('_form',array('model'=>$model));
}
然后提交表单,当然 $source 不在 _POST 中,因为没有字段可以捕获 $source
但是我已经设置了 $model->source 的值,但是这个值似乎没有持久化,因为它没有保存在数据库中。
我发现解决这个问题的唯一方法是使用隐藏字段并将 $source 的值传递给表单。
有没有办法设置 $model->source 并让这个值在不通过表单的情况下进入数据库?
【问题讨论】:
-
参见yiiframework.com/doc/guide/1.1/en/form.model 声明安全属性 我认为您应该将源属性声明为不安全。如果您使用隐藏字段,攻击者可以使用 firebug 更改它。