2016-06-23 7 views
0

Hallo Leute, ich bin ein Neuling auf Symfony und mache ein Web mit Sonaten-Admin-Bundle. Ich wollte Veranstaltung auf adesigns calendar bundle von sonata Admin hinzuzufügen, aber wenn ich EventEntity Klasse erweitern und versuchen, ein neues Ereignis hinzuzufügen, es gab mir folgenden Fehler:Erweitern von adesigns EventEntity-Klasse

Type error: Argument 2 passed to AppBundle\Entity\Schedule::__construct() must be an instance of DateTime, none given, called in /path/to/project/vendor/sonata-project/doctrine-orm-admin-bundle/Model/ModelManager.php on line 509

Ich weiß, es Art von Datetime verursacht, aber ich weiß nicht, Wie man es löst.

Hier ist der erweiterte Code:

<?php 

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use ADesigns\CalendarBundle\Entity\EventEntity; 

/** 
* Schedule 
* 
* @ORM\Table(name="schedule") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\ScheduleRepository") 
*/ 
class Schedule extends EventEntity { 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var string 
    * @ORM\Column(name="title", type="string", length=255) 
    */ 
    protected $title; 

    /** 
    * @var string 
    * @ORM\Column(name="url", type="string", length=255, nullable=true) 
    */ 
    protected $url; 

    /** 
    * @var string 
    * @ORM\Column(name="bgColor", type="string", length=255) 
    */ 
    protected $bgColor; 

    /** 
    * @var string 
    * @ORM\Column(name="fgColor", type="string", length=255) 
    */ 
    protected $fgColor; 

    /** 
    * @var string 
    * @ORM\Column(name="cssClass", type="string", length=255, nullable=true) 
    */ 
    protected $cssClass; 

    /** 
    * @var bool 
    * @ORM\Column(name="allDay", type="boolean") 
    */ 
    protected $allDay; 

    /** 
    * @var DateTime 
    * @ORM\Column(name="startDatetime", type="datetime") 
    */ 
    protected $startDatetime; 

    /** 
    * @var DateTime 
    * @ORM\Column(name="endDatetime", type="datetime") 
    */ 
    protected $endDatetime; 

    public function __construct($title, \DateTime $startDatetime, \DateTime $endDatetime = null, $allDay = false, $hall) { 
     parent::__construct($title, $startDatetime, $endDatetime, $allDay); 
     $this->hall = $hall; 
    } 

    /** 
    * Get id 
    * 
    * @return int 
    */ 
    public function getId() { 
     return $this->id; 
    } 
} 

Antwort

0

Wenn Sie versuchen, eine Lehre Einheit zu verlängern not designed for that Probleme auftreten werden.

Sie sollten stattdessen an event listener or a subscriber class verwenden.

+0

Danke für die Antwort. Kannst du mir ein Beispiel zeigen? Ich kann es nicht herausfinden. Vielen Dank. – Rozig

+0

Es gibt ein Beispiel im Symfony-Dokument, auf das ich hingewiesen habe: http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html#configuring-the-listener-subscriber –