更改索引路径后CakePHP出错

时间:2017-01-13 20:06:21

标签: javascript php jquery ajax cakephp

我正在开发CakePHP项目并遇到了问题。 我们编写了一个Ajax函数,它将数据发送到php函数,该函数将文件夹(德语:ordner)添加到相应的数据库。它工作得非常好但我们想要移动index.ctp以获得" Ordners"到"页面"目录,这是我们的主页。现在该函数仍然有效,但是在单击按钮时它会从Ajax函数中输出错误消息。我们写了不同的功能,同样的事情也在那里发生。

来自Javascript的代码:

        $.ajax({
        type: 'POST',
        url: '/cake1/ordners/add',
        data: sendData,
        success: function (data, textStatus, xhr) {
            //alert(sendData);
        },
        error: function (xhr, textStatus, error) {
            alert(textStatus);
        }
    });

从OrdnersController添加函数:

public function add() {
    $ordner = $this->Ordners->newEntity();


    if ($this->request->is('post')) {
        $ordner = $this->Ordners->patchEntity($ordner, $this->request->data);
        if ($this->Ordners->save($ordner)) {
            //$this->Flash->success(__('Your folder has been saved.'));
            return $this->redirect(['action' => 'index']);
        }
        $this->Flash->error(__('Unable to add your folder.'));
    }
    $this->set('post', $ordner);
}

routes.php文件

    $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'index']);

1 个答案:

答案 0 :(得分:0)

  

它工作得非常好但是我们想要移动index.ctp用于" Ordners"到"页面"目录,以便它是我们的主页。

这没有任何意义。另外,告诉我们您现在得到的错误是明智的。但是,这并不重要。而不是将路由器的视点移动到订单控制器的索引:

$routes->connect('/', ['controller' => 'Orders', 'action' => 'index']);

您的主页/将路由到控制器。将代码放在特定文件夹中是有原因的。将非静态页面移动到Pages控制器的文件夹中是没有意义的,该控制器默认是提供静态页面的控制器。该观点将脱离背景。虽然这在技术上可行,但从逻辑和最佳实践的角度来看,它没有意义。将视图+控制器+模型视为逻辑上组合在一起的独立模块。我想你会同意将用户索引放到产品文件夹中是没有意义的。 ;)