主键不会被设置为学说

时间:2017-11-28 15:15:56

标签: json doctrine-orm

类型错误:传递给的appbundle \实体\ TERMIN参数1 :: setObjektnummer()必须的appbundle \实体\ OBJEKT,给定的整数,称为在/ var / WWW / eWorker / SRC /的appbundle /控制器/ ImportController的一个实例第72行的.php

我无法设置主键。它不是自动编号。当我打印$ json [' Header'] [' Objektnummer']时,它会显示正确的结果。

该行将正确添加。只有" objektnummer"将是0而不是json数组中的值。我的错误在哪里?

enter image description here

$em = $this->getDoctrine()->getManager();

$str = file_get_contents($filename);
$json = json_decode($str, true);

$repository = $this->getDoctrine()->getRepository("AppBundle:User");
$mitarbeiter = $repository->findOneBy(
    array('username' => $json['Header']['Mitarbeiter'])
);

$objekt = $this->getDoctrine()
    ->getRepository("AppBundle:Objekt")
    ->find($json['Header']['Objektnummer']);

if (!$objekt) {
    $objekt = new Objekt();
    $objekt->setObjektnummer(intval($json['Header']['Objektnummer']));
    $objekt->setAnrufer($json['Objekt']['Anrufer']);
    $objekt->setFilialemail($json['Objekt']['Filialemail']);
    $objekt->setFilialname($json['Objekt']['Filialname']);
    $objekt->setObjektanleger($json['Objekt']['Objektanleger']);

    $newSchadentag = explode(".", $json['Objekt']['Schadentag']);


    $objekt->setSchadentag(new \DateTime($newSchadentag[2] . "-" . $newSchadentag[1] . "-" . $newSchadentag[0]));
    $objekt->setSchadenursache($json['Objekt']['Schadensursache']);
    $objekt->setSchadenbehoben(intval($json['Objekt']['Schaden_Behoben']));

    $em->persist($objekt);
    $em->flush();    

}

$termin = new Termin();

$termin->setObjektnummer($objekt->getObjektnummer());
$termin->setIduser( $mitarbeiter->getId() );
$termin->setTerminart($json['Objekt']['Terminart']);
$termin->setDatumbeginn(new \DateTime($this->switchDatum( $json['Objekt']['Termin'] . " " . $json['Objekt']['Uhrzeit'])));
$termin->setDatumende(new \DateTime($this->switchDatum( $json['Objekt']['Termin'] . " " . $json['Objekt']['UhrzeitBis'])));
$termin->setWeitererhinweis($json['Objekt']['WeitererHinweis']);

$em->persist($termin);
$em->flush();

这是ORM

<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  <entity name="AppBundle\Entity\Objekt" table="objekt">
    <id name="objektnummer" type="integer" column="objektnummer">
      <generator strategy="IDENTITY"/>
    </id>
    <field name="filialname" type="string" column="filialname" length="45" nullable="false">
      <options>
        <option name="fixed"/>
      </options>
    </field>
    <field name="filialemail" type="string" column="filialemail" length="45" nullable="false">
      <options>
        <option name="fixed"/>
      </options>
    </field>
    <field name="objektanleger" type="string" column="objektanleger" length="45" nullable="false">
      <options>
        <option name="fixed"/>
      </options>
    </field>
    <field name="schadentag" type="datetime" column="schadentag" nullable="false"/>
    <field name="schadenursache" type="text" column="schadenursache" nullable="true">
      <options>
        <option name="fixed"/>
      </options>
    </field>
    <field name="schadenbehoben" type="integer" column="schadenbehoben" nullable="true">
      <options>
        <option name="unsigned"/>
      </options>
    </field>
    <field name="anrufer" type="string" column="anrufer" length="45" nullable="true">
      <options>
        <option name="fixed"/>
      </options>
    </field>
  </entity>
</doctrine-mapping>

这里我有实体类:

namespace AppBundle\Entity;

/**
 * Objekt
 */
class Objekt
{
    /**
     * @var string
     */
    private $filialname;

    /**
     * @var string
     */
    private $filialemail;

    /**
     * @var string
     */
    private $objektanleger;

    /**
     * @var \DateTime
     */
    private $schadentag;

    /**
     * @var string
     */
    private $schadenursache;

    /**
     * @var integer
     */
    private $schadenbehoben;

    /**
     * @var string
     */
    private $anrufer;

    /**
     * @var integer
     */
    private $objektnummer;

    /**
     * Set filialname
     *
     * @param string $filialname
     *
     * @return Objekt
     */
    public function setFilialname($filialname)
    {
        $this->filialname = $filialname;

        return $this;
    }

    /**
     * Get filialname
     *
     * @return string
     */
    public function getFilialname()
    {
        return $this->filialname;
    }

    /**
     * Set filialemail
     *
     * @param string $filialemail
     *
     * @return Objekt
     */
    public function setFilialemail($filialemail)
    {
        $this->filialemail = $filialemail;

        return $this;
    }

    /**
     * Get filialemail
     *
     * @return string
     */
    public function getFilialemail()
    {
        return $this->filialemail;
    }

    /**
     * Set objektanleger
     *
     * @param string $objektanleger
     *
     * @return Objekt
     */
    public function setObjektanleger($objektanleger)
    {
        $this->objektanleger = $objektanleger;

        return $this;
    }

    /**
     * Get objektanleger
     *
     * @return string
     */
    public function getObjektanleger()
    {
        return $this->objektanleger;
    }

    /**
     * Set schadentag
     *
     * @param \DateTime $schadentag
     *
     * @return Objekt
     */
    public function setSchadentag($schadentag)
    {
        $this->schadentag = $schadentag;

        return $this;
    }

    /**
     * Get schadentag
     *
     * @return \DateTime
     */
    public function getSchadentag()
    {
        return $this->schadentag;
    }

    /**
     * Set schadenursache
     *
     * @param string $schadenursache
     *
     * @return Objekt
     */
    public function setSchadenursache($schadenursache)
    {
        $this->schadenursache = $schadenursache;

        return $this;
    }

    /**
     * Get schadenursache
     *
     * @return string
     */
    public function getSchadenursache()
    {
        return $this->schadenursache;
    }

    /**
     * Set schadenbehoben
     *
     * @param integer $schadenbehoben
     *
     * @return Objekt
     */
    public function setSchadenbehoben($schadenbehoben)
    {
        $this->schadenbehoben = $schadenbehoben;

        return $this;
    }

    /**
     * Get schadenbehoben
     *
     * @return integer
     */
    public function getSchadenbehoben()
    {
        return $this->schadenbehoben;
    }

    /**
     * Set anrufer
     *
     * @param string $anrufer
     *
     * @return Objekt
     */
    public function setAnrufer($anrufer)
    {
        $this->anrufer = $anrufer;

        return $this;
    }

    /**
     * Get anrufer
     *
     * @return string
     */
    public function getAnrufer()
    {
        return $this->anrufer;
    }

    /**
     * Get objektnummer
     *
     * @return integer
     */
    public function getObjektnummer()
    {
        return $this->objektnummer;
    }

    /**
     * Set objektnummer
     *
     * @param int $objektnummer
     *
     * @return Objekt
     */
    public function setObjektnummer($objektnummer)
    {
        $this->objektnummer = $objektnummer;

        return $this;
    }
}

0 个答案:

没有答案