如何使用变量值在Yii中创建URL

时间:2013-08-13 10:33:48

标签: php url yii

我正在使用这些行创建更新按钮的URL。

'url'=>'$this->grid->controller->createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=>0))' 

这很好,因为我已经硬编码了批准的价值。现在我必须用另一个变量$ approval的值来改变这个0。我怎样才能做到这一点。 即我必须给这个

'url'=>'$this->grid->controller->createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=>$approval))' 

以下是表格的附加代码

<form action="index.php">         
<?php $approval = Yii::app()->request->getParam('approval',"0");?>    
<?php echo CHtml::radioButtonList('approval',$approval,array('0'=>'Greetings Approval','1'=>'Contact Approval'),array(
    'labelOptions'=>array('style'=>'display:inline'),
    'onclick' => 'this.form.submit()', 
    'separator'=>''));     ?>
<?php echo CHtml::hiddenField('r', 'testSettings/admin'); ?>     
</form> 

1 个答案:

答案 0 :(得分:3)

我会说有两种可能的方法:

  1. 您在模型中创建一个方法(“$ data”对象的类),称为“isApproved()”,根据您的逻辑返回true或false。然后你可以说

    'url'=>'$this->grid->controller->createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=isApproved()))'
    
  2. 如果在您的视图中某处设置了$ approval变量(这不是一个好习惯),那么您也可以使用像

    这样的闭包
    'url'=> function($data) use ($approval) { return CController::createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=>$approval) }