我正在开发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']);
答案 0 :(得分:0)
它工作得非常好但是我们想要移动index.ctp用于" Ordners"到"页面"目录,以便它是我们的主页。
这没有任何意义。另外,告诉我们您现在得到的错误是明智的。但是,这并不重要。而不是将路由器的视点移动到订单控制器的索引:
$routes->connect('/', ['controller' => 'Orders', 'action' => 'index']);
您的主页/将路由到控制器。将代码放在特定文件夹中是有原因的。将非静态页面移动到Pages控制器的文件夹中是没有意义的,该控制器默认是提供静态页面的控制器。该观点将脱离背景。虽然这在技术上可行,但从逻辑和最佳实践的角度来看,它没有意义。将视图+控制器+模型视为逻辑上组合在一起的独立模块。我想你会同意将用户索引放到产品文件夹中是没有意义的。 ;)