api - Symfony, Invalid data (AppBundle\Entity\InterventionType), expected "AppBundle\Entity\Intervention -


i'm trying insert line base, postman local api foreign keys , have bug :

"message": "invalid data \"1\"(appbundle\entity\interventiontype), expected \"appbundle\entity\intervention\"."

it pointed bad entity , don't know why. i'm targeting "intervention", , doctrine seems go in interventiontype... here's entity :

<?php    namespace appbundle\entity;    use doctrine\orm\mapping orm;  use symfony\component\validator\constraints assert;  use \datetime;    /**   * interventionrapport   *   * @orm\table(name="intervention_rapport", options={"comment":"table répertoriant les retours associés aux différentes interventions (commerciales et techniques) - egalement utilisée pour rémunérer les techniciens et calculer les frais kilométriques tech/com"})   * @orm\entity   */  class interventionrapport  {      /**       * @var integer       * @orm\onetoone(targetentity="appbundle\entity\intervention")       * @orm\joincolumn(name="intervention", nullable=false)       */      private $intervention;        /**       * @var string       *       * @orm\column(name="message", type="text", nullable=true)       */      private $message;        /**       * @var integer       *       * @orm\column(name="statut", type="integer", nullable=false)       */      private $statut = '0';        /**       * other things       **/        /**       * @var integer       *       * @orm\column(name="id", type="integer")       * @orm\id       * @orm\generatedvalue(strategy="auto")       */      private $id;        }

and entity targeted foreign key:

<?php    namespace appbundle\entity;    use doctrine\orm\mapping orm;    /**   * intervention   *   * @orm\table(name="intervention")   * @orm\entity   */  class intervention  {      /**       * @var integer       *       * @orm\manytoone(targetentity="appbundle\entity\interventiontype")       * @orm\joincolumn(name="type", nullable=false)       */      private $type;        /**       * other things      **/        /**       * @var integer       *       * @orm\column(name="id", type="integer")       * @orm\id       * @orm\generatedvalue(strategy="identity")       */      private $id;  }

and json:

{     "message": "steuh plait !",     "statut": 1,     "datemaintenanceprevue": "2017-08-23t15:00:00+00:00",     "heuresintervention": 1,     "heurestrajet": 0.5,     "kmtrajet": 27,     "deleted": 0,     "intervention": 1,     "id": 2 } 

please help, doing wrong?

i found slution changing way created line. don't put intervention id directly, pass url :

class rapportcontroller extends controller  {        /**       * @rest\post(       *    path = "/reports/intervention={id}",       *    name = "app_report_create"       * )       * @rest\view(statuscode = 201)       * @paramconverter("report", converter="fos_rest.request_body")       */      public function createaction(request $request, interventionrapport $report)      {          $em = $this->getdoctrine()->getmanager();            $intervention = $this->get('doctrine.orm.entity_manager')              ->getrepository('appbundle:intervention')              ->find($request->get('id'));            //$report = new \datetime($datemaintenanceprevue);            $report->setintervention($intervention);            $em->persist($report);          $em->flush();            return $report;      }

so, don't need post intervention id client' json :

{ "message": "steuh plait !", "statut": 1, "datemaintenanceprevue": "2017-08-23t15:00:00+00:00", "heuresintervention": 1, "heurestrajet": 0.5, "kmtrajet": 27, "deleted": 0, "id": 2 

}

i don't know if it's correct way it, solved problem. hope can else.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -