У меня есть собственный пакет PIM Akeneo, и я хочу добавить новый столбец «Склад» в сетку продуктов и на страницу с подробными сведениями о продукте в серверной части Akeneo. Это новое свойство и новый столбец. Поэтому я добавил столбец stock в таблицу pim_catalog_product и свойство stock в класс Entity\Product. Последнее, конечно, не было сделано напрямую: я создал собственный объект Product в своем пакете и расширил его из исходного продукта Akeneo. Но это работает неправильно. Неправильное сопоставление и/или построитель запросов.
Проблемы/ошибки
Я получаю следующие ошибки:
- Когда я пытаюсь проверить схему, я получаю сообщение об ошибке. Таблица с именем «akeneo_pim.pim_catalog_product» уже существует.
Код: Выделить всё
$ docker compose exec fpm bin/console doctrine:schema:validate Mapping ------- [OK] The mapping files are correct. Database -------- 17:11:51 CRITICAL [console] Error thrown while running command "doctrine:schema:validate". Message: "The table with name 'akeneo_pim.pim_catalog_product' already exists." ["exception" => Doctrine\DBAL\Schema\SchemaException^ { …},"command" => "doctrine:schema:validate","message" => "The table with name 'akeneo_pim.pim_catalog_product' already exists."] In SchemaException.php line 108: The table with name 'akeneo_pim.pim_catalog_product' already exists. - Когда я пытаюсь получить продукт, открыв страницу его сведений в серверной части Akeneo PIM, я получаю сообщение об ошибке SQLSTATE[42S22]: Столбец не найден: 1054 Неизвестный столбец «t0.id» в разделе «where».
Код: Выделить всё
$ tail -f ./var/logs/dev.log
...
request.CRITICAL:
Uncaught PHP Exception Doctrine\DBAL\Exception\InvalidFieldNameException:
"An exception occurred while executing
'SELECT
t1.id AS id_2,
t1.is_enabled AS is_enabled_3,
t1.identifier AS identifier_4,
t1.raw_values AS raw_values_5,
t1.created AS created_6,
t1.updated AS updated_7,
t1.quantified_associations AS quantified_associations_8,
t1.stock AS stock_9,
t1.family_id AS family_id_10,
t1.product_model_id AS product_model_id_11,
t1.family_variant_id AS family_variant_id_12
FROM pim_catalog_product t1
WHERE t0.id = ?'
with params ["1207"]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.id' in 'where clause'"
at /srv/pim/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 60
{"exception":
"[object] (Doctrine\\DBAL\\Exception\\InvalidFieldNameException(code: 0):
An exception occurred while executing
'SELECT
t1.id AS id_2,
t1.is_enabled AS is_enabled_3,
t1.identifier AS identifier_4,
t1.raw_values AS raw_values_5,
t1.created AS created_6,
t1.updated AS updated_7,
t1.quantified_associations AS quantified_associations_8,
t1.stock AS stock_9,
t1.family_id AS family_id_10,
t1.product_model_id AS product_model_id_11,
t1.family_variant_id AS family_variant_id_12
FROM pim_catalog_product t1
WHERE t0.id = ?'
with params [\"1207\"]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.id' in 'where clause'
at /srv/pim/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:60,
Doctrine\\DBAL\\Driver\\PDOException(code: 42S22):
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.id' in 'where clause'
at /srv/pim/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:123,
PDOException(code: 42S22):
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.id' in 'where clause'
at /srv/pim/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:121)"
} []
Код: Выделить всё
src/Tpg/Bundle/AkeneoTpgBundle/Entity/Product.phpКод: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/79047934/how-to-extend-the-akeneo-product-with-a-further-property[/url]