Я хочу автоматически добавить новый столбец «create_at».
Следуя документации Symfony и Doctrine, я устал от этого:
app/config/services_dev.yaml
Код: Выделить всё
[...]
App\Event\Listener\ManyToManyListener:
tags:
- { name: doctrine.event_listener, event: onSchemaCreateTable }
Код: Выделить всё
[.....]
class ManyToManyListener implements EventSubscriber
{
public function getSubscribedEvents()
{
return ['onSchemaCreateTable'];
}
public function onSchemaCreateTable(SchemaCreateTableEventArgs $event)
{
$columns = $event->getTable()->getColumns();
if (count($columns) getTable()->getName();
$sql = "ALTER TABLE $tableName ADD COLUMN created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP;";
$event->addSql($sql);
//dump($sql);
}
}
}
Я также попробовал этот код (внутри if заявление)
Код: Выделить всё
$event->getTable()->addColumn(
"created_at",
"datetime",
["default" => "CURRENT_TIMESTAMP"]
);
Например, в то время как php bin/console Doction:schema:update --dump-sql, я не вижу свой запрос.
Подробнее здесь: https://stackoverflow.com/questions/605 ... able-event
Мобильная версия