如何在yii模型中设置属性

如何在yii模型中设置属性,yii,model,Yii,Model,在我的yii应用程序中。我编写代码如下: OTP::model()->attributes['name'] = value; 但它不起作用。任何人都可以解释为什么它不工作吗?为了能够以这种方式设置属性,应该在验证规则中将属性标记为“安全”(请参阅:) 像这样的事情应该可以做到: Class OTP{ public function rules() { return array( array('name','safe') ); } } 为了能够以这种方

在我的yii应用程序中。我编写代码如下:

OTP::model()->attributes['name'] = value;

但它不起作用。任何人都可以解释为什么它不工作吗?

为了能够以这种方式设置属性,应该在验证规则中将属性标记为“安全”(请参阅:)

像这样的事情应该可以做到:

Class OTP{
  public function rules() {
    return array(
      array('name','safe')
    );
  }
}

为了能够以这种方式设置属性,应在验证规则中将属性标记为“安全”(请参阅:)

像这样的事情应该可以做到:

Class OTP{
  public function rules() {
    return array(
      array('name','safe')
    );
  }
}

为属性
$name
设置值
$value
,您只需:


为属性
$name
设置值
$value
,您只需:

这同样有效

 $model->setAttribute("name","value");
这同样有效

 $model->setAttribute("name","value");

定义或扩展类时,可以像在任何其他PHP系统中一样,在Yii中创建类变量和方法:

class Comment extends CActiveRecord {

    public $helperVariable;

    public function rules() { ... }
    ...
}
然后以显而易见的方式使用它们:

$var   = $model->helperVariable;

$rules = $model->rules();

这一部分大家都理解。

定义或扩展类时,可以像在任何其他PHP系统中一样,在Yii中创建类变量和方法:

class Comment extends CActiveRecord {

    public $helperVariable;

    public function rules() { ... }
    ...
}
$model = new OPT();
$model->attr = value
然后以显而易见的方式使用它们:

$var   = $model->helperVariable;

$rules = $model->rules();

这一部分大家都理解。

如果您使用gii创建了模型,您可以如下所示设置表字段的属性

$model = new OPT();
$model->attr = value
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')); ?>

如果您使用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

如何设置多个值? 这样,显示的值应为:

name=value1或name=value2


在yii模型中设置属性

$obj = OTP::model();
$obj->name = $value;
现在,如果我们将此模型传递给视图,则只有这些值将显示为name=$value

如何设置多个值? 这样,显示的值应为:

name=value1或name=value2


只有在使用
setAttributes
时才需要Safe,手动分配属性时不需要Safe。只有在使用
setAttributes
时才需要Safe,当手动分配属性时,这不是必需的。能否请您详细说明您的答案并添加有关您提供的解决方案的更多描述?能否请您详细说明您的答案并添加有关您提供的解决方案的更多描述?