У меня проблема с обновлением имени DiscriminatorColumn
Объекты:
/**
*@ORM\Entity
*@ORM\Table(name="item")
*@ORM\InheritanceType("JOINED")
*@ORM\DiscriminatorColumn(name="item_type", type="string")
*/
abstract class Item
{
}/**
*@ORM\Entity
*@ORM\Table(name="product")
*@ORM\InheritanceType("JOINED")
*/
abstract class Product extends Item
{
}
/**
*@ORM\Entity
*@ORM\Table(name="vehicle")
*@ORM\InheritanceType("JOINED")
*/
abstract class Vehicle extends ItemBundle\Product
{
}/**
*@ORM\Entity(repositoryClass="Aussiito\Bundles\VehicleBundle\Entity\Repository\CarRepository")
*@ORM\Table(name="car")
*/
class Car extends Vehicle
{
}class CarRepository extends EntityRepository
{
public function getListCars(){
return $this->findAll();
}
}
Раньше я не добавлял аннотацию: @ORM \ DiscriminatorColumn (name = «item_type», type = «string») в «Item», поэтому по умолчанию у меня был столбец dType. Я хотел переименовать поля с помощью «item_type», поэтому я добавил аннотацию и выполняю следующую команду:
php bin/console doctrine:schema:update
Модификация базы данных была выполнена успешно, но когда я вызываю функцию getListCars (), у меня возникает следующая ошибка:
Возникла исключительная ситуация при выполнении ‘SELECT t3.id AS id_4, t3.created_at AS созданного_5_, t3.updated_at AS обновленного_at_6, t2.id AS id_7, t1.id AS id_8, t0.id AS id_9, t3.dtype ОТ автомобиля t0 INNER ПРИСОЕДИНЯЙТЕСЬ к автомобилю t1 ВКЛ t0.id = t1.id ВНУТРЕННИЙ ПРИСОЕДИНЯЙТЕСЬ к продукту t2 ВКЛ t0.id = t2.id ВНУТРЕННИЙ ПРИСОЕДИНЯЙТЕСЬ пункт t3 ВКЛ t0.id = t3.id ‘:
SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «t3.dtype» в «списке полей»
Поэтому я подумал, что это кеш, и я выполнил следующие команды:
php bin/console cache:clear --env=prod
php bin/console cache:clear --env=dev
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-result
php bin/console doctrine:cache:clear-metadata
Но у меня такая же ошибка.
У кого-нибудь есть решение?
Задача ещё не решена.
Других решений пока нет …