Docrine, cоставной ключ c полем Date
Есть следующая сущность:
class SomeStatistic
{
/**
* @ORM\Id()
* @ORM\Column(name="date", type="date", nullable=false)
*/
private DateTimeInterface $date;
/**
* @ORM\Id()
* @ORM\Column(name="campaign_id", type="integer", nullable=false)
*/
private int $campaign_id;
...other columns
public function __construct(DateTimeInterface $date, int $campaign_id)
{
$this->date = $date;
$this->campaign_id = $campaign_id;
}
...other gettters and setters
При попытке сохранить\получить сущность в репозитории. Доктрина кидает вот такое исключение.
In UnitOfWork.php line 2625: Object of class DateTime could not be converted to string
Миграция для таблицы следующая:
CREATE TABLE campaign_statistic (
date DATE NOT NULL,
campaign_id INT NOT NULL,
some_column INT NOT NULL DEFAULT 0,
PRIMARY KEY(date, campaign_id),
CONSTRAINT fkCampaingId FOREIGN KEY (campaign_id) REFERENCES campaign (id)
Я подозреваю что проблема не в DateTime классе, а в некорректно настроеном маппинге идентификаторов. Кто нибудь сталкивался с подобным когда нужно настроить мапинг составного первичного ключа, где одна из колонок дата? Подскажите как правильно. Очень не хочется изменять тип поля Date на varchar.