Bonjour à tous !
Je demande encore une fois conseil à la communauté pour un module en développement.
Dans ce module je souhaite gérer des champs qui seront traduits ; j’utilise donc le « i18n Behavior ».
La création de la base ok, mon problème est au niveau des formulaires d’éditions. Qd j’utilise un formulaire d’édition, j’ai l’habitude (en gros) de faire un truc du genre :
$myObject = MyModuleOptionQuery::create()
->findPk($myPk);
$arrayData = $myObject->toArray(TableMap::TYPE_FIELDNAME);
parent::buildForm();
$this->formBuilder
->add("id", "hidden", array("constraints" => array(new GreaterThan(array('value' => 0)))))
->setData($arrayData) ;
Et du coup qd je gère l’internationalisation, je suis obligé de modifier :
$myObject = MyModuleOptionQuery::create()
->joinWithI18n($locale)
->withColumn('mymodule_option_i18n.Title', 'title')
->withColumn('mymodule _option_i18n.Attrtitle', 'attrtitle')
->findPk($option_id);
$arrayData = $myObject->toArray(TableMap::TYPE_FIELDNAME);
parent::buildForm();
$this->formBuilder
->add("id", "hidden", array("constraints" => array(new GreaterThan(array('value' => 0)))))
->setData($arrayData);
Je ne suis pas super fan de ma solution, si qq1 à une option plus élégante je prends !
Merci !