2014-03-19 38 views
0

我想为我的管理页面创建一个自定义按钮,然后编写相应的动作但不起作用。这里是我的代码,用自己的动作代码创建一个自定义按钮

这里是我的代码:

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。

我可以知道什么是确切的错误。我该如何解决这个问题?

+0

你可以试着去除你面前的'/'动作吗? 'ContactlistController/actionSave' – Asped

+0

是的,我试过了。它仍然是相同的 – user

+0

你是对的,这不是问题..问题是你需要把一个网址,而不是一个控制器/行动名称..看到我的回答下面 – Asped

回答

0

如果您想为您的控制器使用名为actionSave的操作,则需要采取不同的操作,因为操作前缀用于查找被调用的操作,所以如果您想要访问image/takepicture,则需要在你的ImageController,一个动作命名为:actionTakepicture和你的情况,如果你想拥有Contactlist/actionSave

,在你ContactlistController,你需要有一个名为actionActionsave的功能,

public function actionActionsave(){ 
... 
} 

和相同的是你的名字奥勒,

,这是不是默认的命名约定:d

+0

是的我明白你的答案,我试着改变我的动作名称,但它仍然是一样的 – user

0

在你的代码的问题是,你尝试设置action为动作的名称,但它应该是url在形式必须发送到。

CActiveForm - action

这就是为什么你得到一个错误,becasue你给控制器/动作的名称来代替。

您可以尝试创建一个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(); ?> 
+0

是的,我已经试过这个。如何将它重定向到我在actionSave()中编写的代码? – user

+0

这应该这样做,它应该重定向到给定的URL。除非你使用AJAX进行提交,但似乎没有。 – Asped