在我的 yii 应用程序中。我编写代码如下:
OTP::model()->attributes['name'] = value;
但它不起作用。谁能解释为什么它不起作用?
为了能够以这种方式设置属性,该属性应在您的验证规则中标记为“安全”(请参阅:Yii 模型规则验证)
这样的事情应该可以解决问题:
Class OTP{
public function rules() {
return array(
array('name','safe')
);
}
}
为您只需要$value
的属性设置值:$name
$obj = OTP::model(); $obj->name = $value;
这也有效
$model->setAttribute("name","value");
当你定义或扩展一个类时,你可以像在任何其他 PHP 系统中一样在 Yii 中创建类变量和方法:
class Comment extends CActiveRecord {
public $helperVariable;
public function rules() { ... }
...
}
然后以明显的方式使用它们:
$var = $model->helperVariable;
$rules = $model->rules();
这部分大家都懂。
如果您使用 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')); ?>
在 yii 模型中设置属性
$obj = OTP::model();
$obj->name = $value;
现在,如果我们将此模型传递给视图,那么只有这些值将显示为name = $value
$this->render('view',array('model'=>$obj));
我们如何设置多个值?像这样显示的值是:
名称 = 值 1 或名称 = 值 2 ...
$obj->name= 'value1'
// or
$obj->name= 'value2'
$model = new OPT();
$model->attr = value