2011-10-20 15 views
5

Estoy tratando de pasar una variable POST a uno de mis controladores, sin embargo, estoy haciendo esto desde una página estática (lo sé, no es la manera más limpia y eficiente de hacer las cosas .Pero por el bien de aprender ...). ¿Cómo puedo leer esa variable POST en mi controlador si los datos POST se envían sin un formulario FormHelper?Recuperando datos POST con CakePHP sin formhelper

Estoy publicando los datos usando jQuery ajax, por lo que esto es sin el nativo de CakePHP "FormHelper".

¿Tiene esto sentido? Avísame si necesito elaborarlo. Agradezco cualquier ayuda que puede proporcionar :)

Respuesta

6

Usted debe ser capaz de acceder a los datos con:

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

Y si se sigue la convención de nomenclatura utilizada por el FormHelper y el nombre de su campo de entrada como data[ModelName][FieldName], a continuación, puede acceder a los datos como de costumbre con:

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

No se olvide, Cake es solo PHP.

class BazController extends AppController { 

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

} 

es perfectamente válido. Pero yo haría lo que sugiere @dhofstet, ya que es mucho más "cakey".

0

Para CakePHP 2.x es

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

o

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

Se recomienda la primera opción.

1

Usted debe acceder a los datos de forma artículo en:

Para CakePHP 2.x

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

Para CakePHP 3.4.x

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

Por favor, para mayor referencia , lee el manual. Es mucho más fácil y mejor para ti mismo resolverlo por ti mismo.

Documentation for CakePHP 2.x

Documentation for CakePHP 3

Cuestiones relacionadas