THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


J'ai une erreur avec le namespace dans le modele généré par $ php Thelia module:generate:model Filter. Dans le Base class il'i'a cettes lignes:

use Filter\Model\Thelia\Model\CategoryQuery;
use Filter\Model\Thelia\Model\Category as ChildCategory;

Ici le namespace de mon module Filter\Model etait ajoute au core namespace Thelia\Model\CategoryQuery. Pourquoi est-ce qui se passe?

Aussi je trouvé que dans les classes Filter\Model\FilterCategory et Filter\Model\FilterCategoryQuery j'ai les lignes

use Filter\Model\FilterCategoryQuery;

class FilterCategoryQuery extends BaseFilterCategoryQuery
{
use Filter\Model\FilterCategory;

class FilterCategory extends BaseFilterCategory
{

Le class fait use lors lui-même. Pourqoui?

Last edited by Vdomah (07-11-2014 21:56:48)

Offline


Tu as sans doute une erreur de namespace dans la le fichier schema.xml. Poste-le ici STP.


OpenStudio Toulouse

Offline


<?xml version="1.0" encoding="UTF-8"?>
<database defaultIdMethod="native" name="thelia" namespace="Filter\Model">
    <!--
    See propel documentation on http://propelorm.org for all information about schema file
    -->
    <table name="filter_category">
        <column name="id" primaryKey="true" required="true" type="INTEGER" autoIncrement="true" />
        <column name="category_id" required="true" type="INTEGER" />
        <column name="slug" required="false" size="255" type="VARCHAR" />
        <foreign-key foreignTable="category" name="fk_category_filter_category_id" onDelete="CASCADE" onUpdate="RESTRICT">
            <reference foreign="id" local="category_id" />
        </foreign-key>
        <behavior name="timestampable" />
    </table>

    <table name="filter_distillery">
        <column name="id" primaryKey="true" required="true" type="INTEGER" autoIncrement="true" />
        <column name="category_id" required="true" type="INTEGER" />
        <column name="slug" required="false" size="255" type="VARCHAR" />
        <column name="visible" required="true" size="4" type="INTEGER" />
        <column name="position" required="true" size="4" type="INTEGER" />
        <foreign-key foreignTable="category" name="fk_filter_distillery_category_id" onDelete="CASCADE" onUpdate="RESTRICT">
            <reference foreign="id" local="category_id" />
        </foreign-key>
        <behavior name="timestampable" />
    </table>

    <table name="filter_distillery_i18n">
        <column name="id" primaryKey="true" required="true" type="INTEGER" />
        <column name="locale" required="true" size="5" type="VARCHAR" />
        <column name="title" required="false" size="255" type="VARCHAR" />
        <unique>
            <unique-column name="id" />
            <unique-column name="locale" />
        </unique>
        <behavior name="timestampable" />
    </table>

    <external-schema filename="local/config/schema.xml" referenceOnly="true" />
</database>

Essayé de changer namespace="Filter\Model" par namespace="\Filter\Model" mais sans success.

Offline


C'est correct.

Je te conseille de supprimer toutes tes classes modèle, et de les régénérer. L'erreur de namespace que tu as est sans doute dû à des essais précédents.


OpenStudio Toulouse

Offline


Repeté le régénéreration dans le Model catalogue vide. J'ai encore \Filter\Model\Thelia\Model\Category.

Peut-etre je dois analyser le code de commande de généreration.

Last edited by Vdomah (07-11-2014 16:19:42)

Offline


Il se peut qu'il y ait un bug à la génération.

Que se passe-t-il si tu corriges le namespace à la main dans les classes Base, et les autres classes où il apparaît, pour remplacer partout "Filter\Model\Thelia\Model" par "Thelia\Model" ?


OpenStudio Toulouse

Offline

Offline


Je l'ai fait déjà et les modeles fonctionnent maintenant. Cette erruer seulement.

roadster31 wrote:

Je viens d'ouvrir une issue : https://github.com/thelia/thelia/issues/864

Merci!

Last edited by Vdomah (07-11-2014 18:14:53)