2011-10-20 12 views
5

Sto provando a passare una variabile POST a uno dei miei controller, tuttavia sto facendo questo da una pagina statica (lo so, non il modo più pulito ed efficiente per fare le cose Ma per amore dell'apprendimento ...). Come posso leggere la variabile POST nel mio controller se i dati POST vengono inviati senza un form FormHelper?Recupero dei dati POST con CakePHP senza formhelper

Sto postando i dati utilizzando jQuery ajax, quindi questo è senza il "FormHelper" nativo di CakePHP.

Ha senso? Fammi sapere se ho bisogno di elaborare. Apprezzo qualsiasi aiuto che potete fornire :)

risposta

6

Si dovrebbe essere in grado di accedere ai dati con:

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

E se si segue la convenzione di denominazione utilizzata dal FormHelper e nome al campo di input come data[ModelName][FieldName], poi puoi accedere ai dati come al solito con:

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

Non dimenticare che Cake è solo PHP.

class BazController extends AppController { 

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

} 

è perfettamente valido. Ma vorrei fare come suggerisce @dhofstet dato che è molto più "cakey".

0

Per CakePHP 2.x si è

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

o

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

La prima opzione è consigliata.

1

Si dovrebbe in grado di accedere ai dati modulo pubblicare con:

Per CakePHP 2.x

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

Per CakePHP 3.4.x

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

prega per ulteriore riferimento , leggi il manuale. È molto più facile e migliore per te stesso capirlo da solo.

Documentation for CakePHP 2.x

Documentation for CakePHP 3

Problemi correlati