php yii 2.0找不到控制器页面中的新动作404

时间:2015-12-01 09:26:16

标签: php yii2

我使用的是Yii 2.0基本版,我需要一些帮助。 我创建了一个像这样的ajax函数:

function eliminarColaborador(id) {
    $.ajax({
        type: "GET",
        async: false,
        url: "<?= urldecode(Url::toRoute(['colaborador/ajaxEliminarColaborador'])) ?>",
        dataType: 'json',
        data: {
            'id': id
        },
        complete: function ()
        {
        },
        success: function (data) {
            if (data !== null)
            {
                // SUCCESS
            }
            else
            {
                // ERROR
            }

        }
    });
}

我在控制器中的行动:

public function actionAjaxEliminarColaborador($id) {
        if (Yii::$app->request->isAjax) {
            $continuar = false;

            if(isset($id) && $id > 0) {                
                var_dump($model); die;

                $continuar = true;
            }


            echo CJSON::encode(array('continuar'=>$continuar));
            Yii::$app->end();
        }
    }

我在萤火虫中找到了这个错误:未找到(#404):找不到页面。

我尝试了一切,但我无法弄清楚问题是什么。 如果我将ajax网址更改为 urldecode(Url :: toRoute([&#39; colaborador / delete&#39;])),错误就会消失,一切正常。

也许我需要在ColaboradorController中声明我的新动作 ajaxEliminarColaborador ,但我不知道如何。

有什么问题?

4 个答案:

答案 0 :(得分:1)

<强>控制器

public function actionAjaxEliminarColaborador(){}

<强> AJAX

urldecode(Url::toRoute(['colaborador/ajax-eliminar-colaborador']))

答案 1 :(得分:0)

应该是<?= urldecode(Url::toRoute(['colaborador/ajax-eliminar-colaborador'])) ?>Here你可以了解原因。

答案 2 :(得分:0)

使用以下命令更改ajax响应:

url: '/colaborador/ajaxEliminarColaborador/$id',
data: {id: $id,_csrf: yii.getCsrfToken()},

答案 3 :(得分:-2)

尝试删除&#39; ajax&#39;在你的网址上。