在我的yii应用程序中。我编写如下代码:
OTP::model()->attributes['name'] = value;
但它不起作用。任何人都可以解释为什么它不起作用?
答案 0 :(得分:3)
为了能够以这种方式设置属性,应在验证规则中将该属性标记为“安全”(请参阅:Yii Model rules validation)
这样的事情可以解决问题:
Class OTP{
public function rules() {
return array(
array('name','safe')
);
}
}
答案 1 :(得分:2)
为您需要的属性$value
设置值$name
:
$obj = OTP::model(); $obj->name = $value;
答案 2 :(得分:1)
这也有效
$model->setAttribute("name","value");
答案 3 :(得分:0)
定义或扩展类时,可以像在任何其他PHP系统中一样在Yii中创建类变量和方法:
class Comment extends CActiveRecord {
public $helperVariable;
public function rules() { ... }
...
}
然后以明显的方式使用它们:
$var = $model->helperVariable;
$rules = $model->rules();
这部分人人都明白。
答案 4 :(得分:0)
如果您使用gii创建了模型,则可以设置表格域的属性,如下所示。
public function attributeLabels()
{
return array(
'customer_first_name' => 'First Name',
...
...
);
}
在控制器操作中放入此代码
$model = new Customer; // Use your model insterad of Customer
如果您想将它用作标签,那么只需要输入此代码即可。
<?php echo $form->labelEx($model, 'customer_first_name', array('class' => 'control-label')); ?>
答案 5 :(得分:0)
在yii模型中设置属性
$obj = OTP::model();
$obj->name = $value;
现在,如果我们将此模型传递给查看,那么只会显示这些值 name = $ value
$this->render('view',array('model'=>$obj));
我们如何设置多重值? 就像这样显示的值是:
name = value1或name = value2 ...
$obj->name= 'value1'
// or
$obj->name= 'value2'
答案 6 :(得分:-1)
$model = new OPT();
$model->attr = value