为Category Bundle Orocommerce添加一个新字段



我正试图将ManyToManyRelation添加到类别实体中,但在清除缓存时收到一个错误,即该字段不存在。

public function up(Schema $schema, QueryBag $queries)
{
$this->createNewGammeTable($schema);
$this->extendExtension->addManyToManyRelation(
$schema,
self::CATEGORY_TABLE_NAME,
"new_ranges",
self::NEW_GAMME_TABLE_NAME,
["gamme_id"],
["gamme_id"],
["gamme_id"],
[
"extend" => ["owner" => ExtendScope::OWNER_CUSTOM, 'cascade' => ['all']],
'form' => [
'form_type' => NewGammeCollectionType::class
]
]
);
}
protected function createNewGammeTable(Schema $schema)
{
$table = $schema->createTable(self::NEW_GAMME_TABLE_NAME);
$table->addColumn("id", "integer", ["autoincrement" => true]);
$table->addColumn("gamme_id", "integer", ["notnull" => false]);
$table->addColumn("sort_order", "integer");
$table->setPrimaryKey(["id"]);
}

所以当我清除缓存时,我得到:

In RuntimeReflectionService.php line 76:
         
Property OroBundleCatalogBundleEntityCategory::$new_ranges does not exi  
st 

在dev-env中,我没有得到这个错误。但在orocommerce模板中,当我试图编辑一个类别时,我会得到

An exception occurred while executing 'SELECT t0.id AS id_1, t0.sort_order AS sort_order_2, t0.gamme_id AS gamme_id_3 FROM gdm_new_gamme t0 INNER JOIN oro_rel_ff3a7b9752519dfcec0789 ON t0.id = oro_rel_ff3a7b9752519dfcec0789.newgamme_id WHERE oro_rel_ff3a7b9752519dfcec0789.category_id = ?' with params [2]:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'oro_db.oro_rel_ff3a7b9752519dfcec0789' doesn't exist

我通过使用oro:entity-extend:cache:clear更新实体来解决问题和oro:entity-extend:update-schema

最新更新