es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Añadiendo un nuevo campo a la categoría del paquete Orocommerce.

Estoy tratando de agregar una relación ManyToMany a la entidad de categoría, pero obtengo un error que el campo no existe cuando borro la memoria caché.

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"]);
}

Entonces, cuando borro la memoria caché, obtengo:

In RuntimeReflectionService.php line 76:

  La propiedad Oro\Bundle\CatalogBundle\Entity\Category::$new_ranges no existe.

y en el entorno de desarrollo, no obtengo este error. Pero en la plataforma orocommerce, cuando intento editar una categoría, obtengo:

Ocurrió una excepción al ejecutar '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 = ?' con parámetros [2]:

SQLSTATE[42S02]: Base table or view not found: 1146 La tabla 'oro_db.oro_rel_ff3a7b9752519dfcec0789' no existe.
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la ManyToManyRelation agregada a la entidad Category. El mensaje de error sugiere que la propiedad $new_ranges no existe en la entidad Category, lo cual podría ser causado por un problema de caché.

    Para solucionar esto, puedes intentar limpiar la caché en tu entorno local y ver si el error persiste. Si persiste, puede que necesites revisar la definición de la clase de la entidad y asegurarte de que la propiedad $new_ranges esté definida correctamente.

    En cuanto al error en la plataforma orocommerce, parece que podría faltar una tabla oro_rel_ff3a7b9752519dfcec0789 que debería ser creada por el script de migración proporcionado en el fragmento de código. Puedes verificar si la migración se ejecutó correctamente en la plataforma y si la tabla existe en la base de datos. Si no existe, puede que necesites volver a ejecutar la migración o investigar la causa de la falta de la tabla.

Comments are closed.