用自己的动作代码创建一个自定义按钮


Create a custom button with own action code

我想为我的管理页面创建一个自定义按钮,并编写其相应的操作,但不工作。这是我的代码,

下面是我的代码:

admin.php:

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'action' => "/ContactlistController/actionSave",
)
);?>
<?php echo CHtml::submitButton('Save'); ?>
<?php $this->endWidget(); ?>

ContactlistController.php :
public function actionSave()
{
echo 'hi';
}

表示没有找到url。

我可以知道确切的错误是什么吗?

如果你想在你的控制器中有一个名为:actionSave的动作,你需要做不同的事情,因为动作前缀是用来找到被调用的动作的,所以如果你想去image/takepicture,你需要在你的ImageController中有一个名为:actionTakepicture的动作,在你的情况下,

如果你想有Contactlist/actionSave,在你的ContactlistController中你需要有一个名为actionActionsave的函数,

public function actionActionsave(){
...
}

对于控制器的名称也是一样,

这不是默认的命名约定:D

代码中的问题是,您尝试将action设置为动作的名称,但它应该是url,其中表单必须发送到。

CActiveForm - action

这就是为什么你会得到一个错误,因为你给出了控制器/动作的名称。

你可以尝试创建一个URL,例如createUrl:

<?php $form=$this->beginWidget('CActiveForm', array(
  'id'=>'login-form',
  'action' => Yii::app()->createUrl("contactlist/save"),
)
);?>
<?php echo CHtml::submitButton('Save'); ?>
<?php $this->endWidget(); ?>