stopher Posted August 18, 2015 Share Posted August 18, 2015 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 More sharing options...
stopher Posted August 18, 2015 Author Share Posted August 18, 2015 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. 2 Link to comment Share on other sites More sharing options...
Toinou_74 Posted January 22, 2016 Share Posted January 22, 2016 (edited) 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 January 22, 2016 by Toinou_74 (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now