Mit Doctrine in Datenbank schreiben

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment

    Working...
    X