2014-01-30 82 views
0

我正在運行一個Ajax教程示例,並且在控制器文件中出現一行錯誤。我正在做的是如果一個字段是空白的,並且用戶模糊了它,則會在字段下面顯示一個錯誤。Cakephp中未定義的索引錯誤

這裏是MessagesController.php整體功能

public function validate_form() 
    { 
     if($this->RequestHandler->isAjax()) 
     { 
      $this->request->data['Message'][$this->request->params['form']['field']] = $this->request->params['form']['value']; 
      $this->Message->set($this->request->data); 
      if($this->Message->validates()) 
      { 
       $this->autoRender = FALSE; 
      } 
      else 
      { 
       $error = $this->validateErrors($this->Message); 
       $this->set('error', $error[$this->request->params['form']['field']]); 
      } 
     } 
    } 

錯誤行是這樣的:

$this->request->data['Message'][$this->request->params['form']['field']] = $this->request->params['form']['value']; 

和錯誤是這個

Undefined index: form [APP\Controller\MessagesController.php, line 30] 

其實本教程的基礎上之前的Cake版本,但我做了與當前版本兼容的適當更改,但sti會出現錯誤。有人可以告訴我這行或代碼中其他地方可能有什麼錯誤。非常感謝。

+3

'var_dump($ this-> request-> params);'檢查表單是否真的存在或不存在。 – Rikesh

回答

0

$this->request->params不包含form索引。

我想你應該看看你的$this->request->data

$this->request->params只有關於您的請求的信息:操作,控制器,任何命名參數等等。

你得到的錯誤實際上是正常的。

添加註釋並鏈接到教程。

+0

這是在YT上的視頻tutorail。這個人非常有知識,現在我一直在關注他的教程。他解釋了關於使用Ajax的兩個教程。第一個運行良好,但第二個運行良好,除了我爲了使它與最新版本的Cakephp兼容而做的一些更改之外,整個代碼都是相同的。這裏是鏈接(http://www.youtube.com/watch?v=dQ71psonQx0) – user3224207

+0

啊,對不起,但我不能看一個小時的視頻編程教程... –

+0

反正謝謝伊利。 – user3224207