Yii,如何从控制器传递变量到模型?

时间:2013-12-27 05:03:19

标签: variables yii model controller

我想知道如何做到这一点,我不认为将变量从控制器传递到视图的方式相同,只是我需要计算数据库上的列,我可以从控制器中完成它,但是如何传递它模拟?。

public function attributeLabels()
    {
        return array(
            'id' => 'ID',
            'parametro_id' => 'Parametro',
            'variable' =>  'ucfirst($variable)',    
        );
    }

变量是var,它表示未定义,怎么做?

2 个答案:

答案 0 :(得分:2)

如果您没有指定,则Yii将根据数据库中的列名使用generateAttributeLabel自动生成标签。您无需致电ucfirst()来格式化变量。

  

默认情况下,使用generateAttributeLabel生成属性标签。

     

来源:http://www.yiiframework.com/doc/api/1.1/CModel#attributeLabels-detail


  

generateAttributeLabel()方法:

     

生成用户友好的属性标签。这是通过用空格替换下划线或短划线并将每个单词的第一个字母更改为大写来完成的。例如,'department_name'或'DepartmentName'变为'Department Name'。


只需在标签方法中删除该行,即可让Yii为您格式化名称:

'variable' => 'ucfirst($variable)',

答案 1 :(得分:-1)

您可以将模型中的变量声明为

public $columnCount;

现在在控制器中你可以计算模型,你可以为特定模型创建一个对象,然后将值赋给此

public function actionColumncount(){
    $model = new modelname();
    $model->columnCount = 5;//Your count operation goes here
    //You may proceed with your proceedings
}

然后在模型中,您可以将其作为

进行访问
$this->columnCount;

希望这样做