2011-10-20 6 views
5

POST変数を自分のコントローラの1つに渡そうとしていますが、静的なページからこれをやっています(私は知っています。しかし、学習のために...)。 FormHelperフォームなしでPOSTデータが送信されている場合、コントローラでそのPOST変数を読み取るにはどうすればよいですか?FormhelperなしでCakePHPでPOSTデータを取得する

私はjQuery ajaxを使用してデータを投稿しています。したがって、これはCakePHPのネイティブ「FormHelper」なしです。

これは意味がありますか?私が精緻化する必要があるかどうかを教えてください。私はあなたが提供することができます任意の助けに感謝:)

答えて

6

あなたがしてデータにアクセスできるようにする必要があります

$this->params['form']['YOUR_VARIABLE_NAME'] 

そして、あなたはdata[ModelName][FieldName]ようFormHelperので使用される命名規則に従うと、あなたの入力フィールドに名前を付ける場合は、

$this->data['ModelName']['FieldName'] 
6

ケーキはただのPHPであることを忘れないでください。

class BazController extends AppController { 

    function foo() { 
     $foo = $_POST['bar']; 
     $this->set('foobar', $foo); 
    } 

} 

は完全に有効です。しかし、@dhofstetが提案するように、私はそれをはるかに "ケーキ"としています。 CakePHPの2.Xについて

0

はそれが

$this->request->data['ModelName']['field_name']; 

または

$_POST['data']['ModelName']['field_name']; 

最初のオプションが推奨されています。

1

あなたがして、フォームのPOSTデータにアクセスできるようにすべきである:さらなる参照のためのCakePHPのバージョン3.4.xのためのCakePHP 2.xの

if ($this->request->is('post')) { 
    pr($this->request->data); 
} 

について

if ($this->request->is('post')) { 
    pr($this->request->getData()); 
} 

をしてください、マニュアルをお読みください。あなた自身でそれを理解することはずっと簡単で、より良い方法です。

Documentation for CakePHP 2.x

Documentation for CakePHP 3

関連する問題