Jump to content

Override ajout de champs bug inconpréhensible


Recommended Posts

Je suis face à un bug que je ne parvient pas pas comprendre .

 

J'ai surchargé la class Customer pour ajouter un champ ( le champ existe dans ma BDD )

<?php
class Customer extends CustomerCore
{
    public $zoho_account_id;

    public function __construct($id=null)
    {
        self::$definition['fields']['zoho_account_id'] = array('type' => self::TYPE_STRING);
        parent::__construct($id);
    }

}

J'ai supprimé le cache /cache/class_index.php

 

Et malgrés celà, mon champ n'est pas pris en compte à l'ajout et à la modification, il ne ressort même pas du getDefinition() de l'objectModel.

 

Le pire étant que celà a déjà fonctionné !!!

 

Quelqu'un à une piste pour maider à debugger ?

 

Merci d'avance,

 

Christophe.

Link to comment
Share on other sites

Il semblerai que le probléme vienne de la reflexion de la classe .

 

qui si elle n'est pas instanciée, alors les champs ajoutés n'appraissent pas ( logique car on ne passe pas par le constructeur )

 

Donc la seule parade que j'ai trouvé pour le moment, et de copier l'intégralité de l'attribut $definition dans ma surcharge, et d'y ajouter mes champs .

Ainsi , même plus besoin de constructeur.

<?php
class Customer extends CustomerCore
{
    public $zoho_account_id;

        /**
     * @see ObjectModel::$definition
     */
    public static $definition = array(
        'table' => 'customer',
        'primary' => 'id_customer',
        'fields' => array(
            'secure_key' =>                 array('type' => self::TYPE_STRING, 'validate' => 'isMd5', 'copy_post' => false),
            'lastname' =>                   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'firstname' =>                  array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'email' =>                      array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'required' => true, 'size' => 128),
            'passwd' =>                     array('type' => self::TYPE_STRING, 'validate' => 'isPasswd', 'required' => true, 'size' => 32),
            'last_passwd_gen' =>            array('type' => self::TYPE_STRING, 'copy_post' => false),
            'id_gender' =>                  array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'birthday' =>                   array('type' => self::TYPE_DATE, 'validate' => 'isBirthDate'),
            'newsletter' =>                 array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'newsletter_date_add' =>        array('type' => self::TYPE_DATE,'copy_post' => false),
            'ip_registration_newsletter' => array('type' => self::TYPE_STRING, 'copy_post' => false),
            'optin' =>                      array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'website' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isUrl'),
            'company' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
            'siret' =>                      array('type' => self::TYPE_STRING, 'validate' => 'isSiret'),
            'ape' =>                        array('type' => self::TYPE_STRING, 'validate' => 'isApe'),
            'outstanding_allow_amount' =>   array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat', 'copy_post' => false),
            'show_public_prices' =>         array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'id_risk' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
            'max_payment_days' =>           array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
            'active' =>                     array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'deleted' =>                    array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'note' =>                       array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'size' => 65000, 'copy_post' => false),
            'is_guest' =>                   array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'id_shop' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'id_shop_group' =>              array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'id_default_group' =>           array('type' => self::TYPE_INT, 'copy_post' => false),
            'id_lang' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'date_add' =>                   array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
            'date_upd' =>                   array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),

            //Custom Fields
            'zoho_account_id' =>  array('type' => self::TYPE_STRING),

        ),
    );

}
?>

Malgrés tout, je ne comprends pas pourquoi .. celà a fonctionné , puis plus fonctionné ... et j'ai une surcharge de la classe Product qui est faite de la même maniére qui fonctionne trés bien ... si vous avez des lumiéres à ce sujet .. je suis interessé .

 

Ch.

  • Like 2
Link to comment
Share on other sites

  • 5 months later...

Bonjour,

 

Avez trouvé le probleme, j'ai la meme choses que vous,

 

<?php


class Customer extends CustomerCore
{
public $id_employee;


public function __construct($id= null)
{
    Customer::$definition['fields']['id_employee'] =array('type' => self::TYPE_STRING, 'validate' => 'isGenericName');
   parent::__construct($id);
}
}

Imposible d'ecrire en base, alors lorsque je fais un copier coller du la classe dans l'overide avec mon champ suplémentaire.. ca fonctionne.

 

bien cordialement

Edited by Toinou_74 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...