1

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

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

但它不起作用。谁能解释为什么它不起作用?

4

7 回答 7

3

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

这样的事情应该可以解决问题:

Class OTP{
  public function rules() {
    return array(
      array('name','safe')
    );
  }
}
于 2013-11-13T08:01:53.117 回答
2

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

$obj = OTP::model();
$obj->name = $value;
于 2013-11-13T08:10:28.530 回答
1

这也有效

 $model->setAttribute("name","value");
于 2014-07-23T12:44:09.370 回答
0

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

class Comment extends CActiveRecord {

    public $helperVariable;

    public function rules() { ... }
    ...
}

然后以明显的方式使用它们:

$var   = $model->helperVariable;

$rules = $model->rules();

这部分大家都懂。

于 2014-10-22T13:00:44.583 回答
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')); ?>
于 2015-07-03T10:48:52.167 回答
0

在 yii 模型中设置属性

$obj = OTP::model();
$obj->name = $value;

现在,如果我们将此模型传递给视图,那么只有这些值将显示为name = $value

$this->render('view',array('model'=>$obj));

我们如何设置多个值?像这样显示的值是:

名称 = 值 1 或名称 = 值 2 ...

 $obj->name= 'value1' 
  //  or
 $obj->name= 'value2' 
于 2015-07-17T04:54:04.290 回答
-1
$model = new OPT();
$model->attr = value
于 2015-05-04T12:39:52.573 回答