Symfony2.8. How to get data from post request

2019-02-09 08:29发布

问题:

How can I receive data from POST request in my controller? I don't use twig.

public function newAction(Request $request)
{
   //when I use
   $content = $request->getContent();
   // as result I see "string" with need field and value. It's not json
   // array
   // value like
   /* 
      string '------WebKitFormBoundaryI12ukQBs3HdmPjvh
      Content-Disposition: form-data; name="title"

      "valuefortitle"
      ------WebKitFormBoundaryI12ukQBs3HdmPjvh
      Content-Disposition: form-data; name="name"

      "supername"
      ------WebKitFormBoundaryI12ukQBs3HdmPjvh--
      ' (length=253)
      */
}

Or how can I serialize(convert) Post data to object or array

I send request using Postman with header "Content-Type: application/json".

And can you show me how to save file(image)?

回答1:

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";
}


回答2:

Dump all data from request to find possible problem with: $request->request->all();



回答3:

$request->request->get('content');

POST: $request->request->get('<propertyName>');

GET: $request->query->get('<propertyName>');