Access POST values in Symfony2 request object
Symfony 2.2
this solution is deprecated since 2.3 and will be removed in 3.0, see documentation
$form->getData();
gives you an array for the form parameters
from symfony2 book page 162 (Chapter 12: Forms)
[...] sometimes, you may just want to use a form without a class, and get back an array of the submitted
data. This is actually really easy:
public function contactAction(Request $request) {
$defaultData = array('message' => 'Type your message here');
$form = $this->createFormBuilder($defaultData)
->add('name', 'text')
->add('email', 'email')
->add('message', 'textarea')
->getForm();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
// data is an array with "name", "email", and "message" keys
$data = $form->getData();
}
// ... render the form
}
You can also access POST values (in this case "name") directly through the request object, like so:
$this->get('request')->request->get('name');
Be advised, however, that in most cases using the getData() method is a better choice, since it
returns the data (usually an object) after it's been transformed by the form framework.
When you want to access the form token, you have to use the answer of Problematic$postData = $request->request->get('contact');
because the getData()
removes the element from the array
Symfony 2.3
since 2.3 you should use handleRequest
instead of bindRequest
:
$form->handleRequest($request);
see documentation
Symfony2.8. How to get data from post request
You can use for POST request :
$request->request->get('data');
For GET request:
$request->query->get('data');
For FILE queries:
$request->files.
And ask your questions How to save image?
, you must create uploads -> excels
:
$dir = $this->get('kernel')->getRootDir() . '/../web/uploads/images/';
$name = uniqid() . '.jpeg';
foreach ($request->files as $uploadedFile) {
$uploadedFile->move($dir, $name);
}
$file = $this->get('kernel')->getRootDir() . "/../web/uploads/images/" . $name;
if (file_exists($file)) {
echo "Successfully saved";
}
Getting POST request on Symfony2
To retrieve a POST request parameter you've to use
$order = $request->request->get('Ds_Order');
Read Requests and Responses in Symfony
// retrieve GET variables
$request->query->get('foo');
// retrieve POST variables
$request->request->get('bar', 'default value if bar does not exist');
POST values Symfony request object
It looks like your form is not submitting the data onclick="location.href='/app_dev.php/Message/Board/post'"
I think this is sending a GET request before the form submits the POST request (thus the values are NULL
).
I would recommend changing the onclick
property of your submit buttons to call a javascript function that either:
A: collects the form data and makes an AJAX POST request to appropriate URL
OR
B: fills the form's action
property with the correct URL and then allows the form to submit naturally.
Symfony2 - access Request object from controller parameter list with multiple parameters
This works,
as I think the only difference is that I do not pass = null
in parameters declaration
use Symfony\Component\HttpFoundation\Request;
/**
* @Route("/hello/{name}", name="_demo_hello")
*/
public function helloAction(Request $request, $name)
{
var_dump($request, $name);die();
In Symfony2 controllers it's not a good Idea to declare default value in the method definition - it should be done in routing definition.
In your case:
/*
*
* @Route("/register/next/{currentStep}", name="next_registration_step", defaults={"currentStep" = 0})
*/
public function next(Request $request, $currentStep) {...}
regards,
How to access value of a particular post field in symfony 2.8
You can do like this :
$request->query->get('Title');
// OR
$request->request->get('Title');
// OR
$request->get('Title');
You can also able to this with Entity
:
$article = new Article();
$article->getTitle();
Full Information : https://symfony.com/doc/current/introduction/http_fundamentals.html#symfony-request-object
How can I check if request was a POST or GET request in Symfony2 or Symfony3
If you want to do it in controller,
$this->getRequest()->isMethod('GET');
or in your model (service), inject or pass the Request object to your model first, then do the same like the above.
Edit: for Symfony 3 use this code
if ($request->isMethod('post')) {
// your code
}
Symfony post request body parameters?
That is the expected behavior. You are sendind a JSON string inside the body of the request.
In this case, you need json_decode to convert the JSON string into an array or object, in order to access the data.
$parameters = json_decode($request->getContent(), true);
echo $parameters['name']; // will print 'user'
access HTTP PUT data in Symfony2
You are getting it from $request->getContent()
, just json_decode
it and you should get an object, so you can access it then. Example:
$data = json_decode($request->getContent());
var_dump("COMPANY ID " . $data->company_id);
Edit to add a little bit more explanation.
Symfony Http Foundations get
method is basically just an "alias" for $request->attributes->get
, $request->query->get
, and $request->request->get
, so if one returns 0 or false, or whatever, quite probably the other will too.
Since HTTP PUT sends data as body, the Request object does not try to decode it in any way, because it could have been in multiple different formats(JSON, XML, non-standard,...). If you wish to access it through get
method call, you will have to decode it manually and then add it to its request
or query
properties.
Getting all request parameters in Symfony 2
You can do $this->getRequest()->query->all();
to get all GET params and $this->getRequest()->request->all();
to get all POST params.
So in your case:
$params = $this->getRequest()->request->all();
$params['value1'];
$params['value2'];
For more info about the Request class, see http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html
Related Topics
Prevent Nginx 504 Gateway Timeout Using PHP Set_Time_Limit()
How to Switch from Post to Get in PHP Curl
A Better Approach Than Storing MySQL Password in Plain Text in Config File
.Htaccess 301 Redirect of Single Page
Algorithms for String Similarities (Better Than Levenshtein, and Similar_Text)? PHP, Js
How to Use Array_Push on a Session Array in PHP
Methods to Remove Specific Characters from String
Jquery Using Ajax to Send Data and Save in PHP
Intermittent PHP Abstract Class Error
What Is an Abstract Class in PHP
How to Pass Arguments to My Function Through Add_Action
Run Cron Job on PHP Script, on Localhost in Windows
What Is the Format for E-Mail Headers That Display a Name Rather Than the E-Mail
Mysql: Add Sequence Column Based on Another Field
How to Make Strings "Xml Safe"
Simple HTML Dom File_Get_HTML Not Working - Is There Any Workaround