Mit Doctrine in Datenbank schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mit Doctrine in Datenbank schreiben

    Schönen guten Tag.

    Ich wollte mich mal mit Doctrine versuchen, aber krieg es einfach nicht hin.
    Hab es in der Bootstrap registriert und auch die DoctrineFactory geschrieben was auch laufen sollte.
    Aber bei den Entities bekomm ich es einfach nicht hin.

    Bekomme immer folgende Fehlermeldung:


    Doctrine\ORM\ORMInvalidArgumentException: EntityManager#persist() expects parameter 1 to be an entity object, array given.
    Habe einfach nur eine simple Tabelle "candidate" mit den spalten "id" und "token".
    Vielleicht hat ja jemand eine Idee..

    Class Candidate:

    PHP-Code:
    use Doctrine\ORM\Mapping as ORM;

    /**
     * Accesses
     *
     * @ORM\Table(name="candidate")
     * @ORM\Entity
     * @ORM\Entity(repositoryClass="AnonymityCenter\CandidateRepository")
     */
    class Candidate
    {
        
    /**
         * @var string
         *
         * @ORM\Column(name="id", type="string", nullable=false)
         * @ORM\Id
         */
        
    private $id;

        
    /**
         * @var string
         *
         * @ORM\Column(name="token", type="string", nullable=false)
         */
        
    private $token;

        public static function 
    create(string $idstring $token): self
        
    {
            
    $me = new self();

            
    $me->id $id;
            
    $me->token $token;

            return 
    $me;
        }

        public function 
    getId(): string
        
    {
            return 
    $this->id;
        }

        public function 
    getToken(): string
        
    {
            return 
    $this->token;
        }



    CandidateRepository:

    PHP-Code:
    use Doctrine\ORM\EntityRepository;

    class 
    CandidateRepository extends EntityRepository
    {
        
    /**
         * @param Candidate[] $candidates
         * @throws \Doctrine\ORM\OptimisticLockException
         */
        
    public function saveCandidates(array $candidates)
        {
                foreach (
    $candidates as $candidate) {
                    
    $this->_em->persist($candidate);
                }

            
    $this->_em->flush();
        }

        public function 
    getCandidates(string $identifier): Candidate
        
    {
            
    $token $this->find($identifier);
            if (
    null === $token) {
                throw new 
    Exception('Token not found: ' $identifier);
            }

            
    /** @var Candidate $candidate */
            
    return $candidate;
        }



    DefaultAction:

    PHP-Code:
    $json file_get_contents('../test.json');
            
    $jsonDecode json_decode($jsontrue);

     
    $this->candidateRepository->saveCandidates($jsonDecode['candidates']); 


    Viele Grüße,

    Herkaen

  • #2
    Thema kann geschlossen werden, hat sich erledigt.

    Kommentar

    Lädt...
    X