2011-10-20 23 views
5

Próbuję przekazać zmienną POST do jednego z moich kontrolerów, jednak robię to ze statycznej strony (wiem, nie najczystszy i najbardziej efektywny sposób na rzeczy Ale ze względu na naukę ...). Jak mogę odczytać tę zmienną POST w moim kontrolerze, jeśli dane POST są wysyłane bez formularza FormHelper?Pobieranie danych POST za pomocą CakePHP bez formhelpera

Publikuję dane za pomocą jQuery ajax, więc to jest bez rodzimego CakePHP "FormHelper".

Czy to ma sens? Daj mi znać, jeśli będę musiał się rozwinąć. Doceniam jakiejkolwiek pomocy można zapewnić :)

Odpowiedz

6

Powinieneś być w stanie uzyskać dostęp do danych z:

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

A jeśli zgodnie z konwencją nazewnictwa używaną przez FormHelper i nazwać pole wejściowe jak data[ModelName][FieldName], a następnie możesz uzyskać dostęp do danych, jak zwykle:

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

Nie zapomnij Ciasto to po prostu PHP.

class BazController extends AppController { 

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

} 

jest całkowicie poprawny. Ale zrobiłbym tak, jak sugeruje @dhofstet, ponieważ jest znacznie bardziej "ciastowaty".

0

Dla CakePHP 2.x jest

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

lub

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

Pierwsza opcja jest zalecana.

1

Powinieneś mieć dostęp do danych z formularza postu:

Dla CakePHP 2.x

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

Dla CakePHP 3.4.x

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

Proszę dla dalszego odniesienia przeczytaj instrukcję. O wiele łatwiej i lepiej dla siebie samemu to zrozumieć.

Documentation for CakePHP 2.x

Documentation for CakePHP 3

Powiązane problemy