2017-01-13 62 views
0

我正在CakePHP項目上工作並遇到問題。 我們編寫了一個Ajax函數,它將數據發送到php函數,該函數將一個文件夾(德語:ordner)添加到相應的數據庫。它工作得很好,但我們希望將「Ordners」的index.ctp移動到「Pages」目錄,以便它成爲我們的主頁面。現在這個函數仍然可以工作,但是當點擊按鈕時它會從Ajax函數中拋出錯誤消息。我們寫了不同的功能,同樣的事情也發生在那裏。更改索引路徑後CakePHP出錯

代碼從JavaScript:從OrdnersController

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

附加功能:

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

它的工作完全正常,但我們要搬家了「Ordners」的index.ctp改爲「Pages」可怕因此它是我們的主頁。

這沒有任何意義。另外,告訴我們你現在得到的錯誤是很明智的。但是,這並不重要。而不是將路由器移動到您的訂單控制器索引:

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

而您的主頁/將路由到控制器。爲什麼代碼放在特定的文件夾中是有原因的。將非靜態頁面移動到頁面控制器的文件夾中是沒有意義的,該控制器默認爲提供靜態頁面的控制器。該觀點將脫離上下文。雖然這在技術上是可行的,但從邏輯和最佳實踐的角度來看,這是沒有意義的。將view + controller + model視爲邏輯分組在一起的分離模塊。我猜你會同意將例如用戶索引放入產品文件夾是沒有意義的。 ;)