我用这几行为更新按钮创建一个URL。
'url'=>'$this->grid->controller->createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=>0))'
这很好,因为我已经对值进行了硬编码以供批准。现在我必须用另一个变量$approvement的值来更改这个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>
有两种可能的方法:
-
您可以在模型("$data"对象的类)中创建一个名为"isApproved()"的方法,该方法根据您的逻辑返回true或false。然后你可以说
'url'=>'$this->grid->controller->createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=isApproved()))'
-
如果$approval变量设置在您的视图中的某个位置(这不是一个好的做法),那么您也可以使用类似的闭包
'url'=> function($data) use ($approval) { return CController::createUrl("/testSettings/update", array("id"=>$data->Id,"approval"=>$approval) }