【问题标题】:Yii, changing original posted attributesYii,改变原来发布的属性
【发布时间】:2015-04-30 03:26:58
【问题描述】:

我想问一下,actionCreate()原来贴的属性可以改吗?

例如我有 3 个属性:namephNumberaddress

在 _form.php 中,它会自动发布这 3 个属性。但是,如果我想将发布的name 属性更改为所有大写字母怎么办?我是否需要创建自己的记录方法来更改name 的记录方式,或者我可以在actionCreate() 中做些什么,以便它只更改name 属性?

例如,用户输入

亚当·迈克尔

对于name 文本框,我只想将此属性更改为

亚当·迈克尔

记录在数据库中,而不必创建另一个方法。

代码如下:

public function actionCreate() {
    $model = new Masseuse;

    if (isset($_POST['Masseuse'])) {
        $model->setAttributes($_POST['Masseuse']);          

        if ($model->save()) {
            if (Yii::app()->getRequest()->getIsAjaxRequest())
                Yii::app()->end();
            else
                $this->redirect(array('servicemasseuse/create', 'mid' => $model->id));
        }  
    }

    $this->render('create', array( 'model' => $model));
}

【问题讨论】:

    标签: php yii attributes


    【解决方案1】:

    只需简单地做一个$model->name=strtoupper($model->name);

    Refer here

    【讨论】:

      【解决方案2】:

      您必须在保存数据之前更改用户输入。为此,您可以在模型中创建一个被覆盖的函数。

      class Masseuse extends CActiveRecord {
      
        // ...
      
         public function beforeSave()
         {
            $this->name = strtoupper($this->name)
         }
       }
      

      【讨论】:

        猜你喜欢
        • 2012-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-19
        相关资源
        最近更新 更多