Bonjour Dia,

Quelques petites choses pour avancer, je regarderai en détail ton code
après :

1) "quand il s'agit de vérifier la présence d'une association entre 2
modèles liés par une relation HABTM"
>>>> Je ne comprends pas : tu veux vérifier qu'il existe une association entre 
>>>> 2 modèles ou vérifier qu'un champ de formulaire n'est pas vide ?

2) est-ce que tu as déclaré l'HABTM dans tes deux modèles ?

3) echo $form->input('GameGenre', array('label' => '<strong>* Genre :</
strong>'));
>>>>> Quand tu regardes la source HTML générée, quelle est la syntaxe de 
>>>>> l'attribut "name" de ton input ?

4) J'ai le sentiment que tu as créé un modèle GameGenre, non ? Dans
Cake, quand on fait une HABTM, on crée la table de liaison
games_genres, mais on ne crée pas le modèle correspondant, seuls les
modèles Game et Genre sont créés.
En fait quand je regarde ton setting dans admin_add, tu as fait :
"$this->Game->GameGenre->find()", alors que tu devrais avoir "$this-
>Game->Genre->find()"

Voici un exemple à moi qui marche en RC2 : http://bin.cakephp.org/view/54589606
J'implémente des checkbox et j'ai écrit, dans ce cas précis, mes input
sans le helper form, mais le principe est le même avec $form->input().
Tu écriras un truc du type : $form->input('photos',array('label' =>
__('Mes illustrations',true)));

5) Pour tester dans le Modèle si le champ est vide, tu peux faire ton !
isset($this->data['Genre']['Genre']) ou ton !empty($this->data['Genre']
['Genre']) dans un beforeSave() qui retourne false avec un $this-
>invalidFields('Genre'); Je ne suis plkus sûr de la syntaxe, mais tu
la retrouveras facilement dans la CookBook.


On 10 juil, 21:15, Dia <[EMAIL PROTECTED]> wrote:
> salut
>
> déjà, merci d'avoir répondu
>
> voilà mon code (en partie) :http://bin.cakephp.org/view/2137985698
>
> je sais bien comment fonctionne le système de validation mais pas
> quand il s'agit de vérifier la présence d'une association entre 2
> modèles liés par une relation HABTM
>
> oui, je fais le isset dans le contrôleur, et oui c moche, mais je
> comme pour ce cas précis je sais pas comment utiliser le système de
> validation...
>
> pour le coup du formulaire vide et du tableau, je vais décrire ce que
> j'ai fait ça sera plus simple :
> - aller sur le fomulaire d'ajout de Game
> - ne rien remplir
> - valider
> - évidemment la page se raffiche avec les messages d'erreurs qui vont
> bien et un var_dump de $this->data dans l'action add du contrôleur me
> donne un truc du genre
> array (
> [Game] => array ( 'champ1' => string(0) ''... /* pareil pour tous les
> champs */ )
> ['GameGenre'] => array(1) { ['GameGenre'] => string(0) '' }
> ['GameBackground'] => array(1) { ['GameBackground'] => string(0) '' }
> )
>
> j'utilise la 1.2 RC2 et je n'avais pas ce comportement avec la 1.2
> alpha ou beta
>
> merci d'avance pour l'aide
>
> On 10 juil, 14:14, avairet <[EMAIL PROTECTED]> wrote:
>
> > Bonjour Dia,
>
> > Avec le système de validation, tu dois déclarer une variable $validate
> > dans ton modèle Game et une autre dans GameGenre.
> > Sur ce type là :
>
> > public $validate = array(
> > 'titre' => array('rule'=>array('minLength',
> > 1),'message'=>'Obligatoire')
>
> > }
>
> > Là tu indiques faire un if(!isset($this->data[''GameGenre]")), mais tu
> > fais celà dans ton contrôleur, non ?
> > C'est possible mais cela n'est pas la meilleure solution automagique
> > de Cake.
>
> > Par ailleurs, tu dis "valider un formulaire vide renvoie un
> > tableau" ??
> > Mais pour moi, valider un formulaire vide renvoie false et un éventuel
> > message d'erreur ?!
>
> > Enfin, dans un formulaire qui contient une HABTM, le select multiple a
> > pour name : data[GameGenre][GameGenre][]
> > Donc si tu testes uniquement sur data[GameGenre], alors tu as
> > forcément une réponse erronée.
>
> > Pour te répondre avec précision, il faudrait qu'on puisse lire un
> > minimum de code et que tes explications soient claires.
> > Tu peux utiliser le bin pour nous copier-coller du code 
> > :http://bin.cakephp.org/
>
> > Avairet
>
> > On 10 juil, 13:34, Dia <[EMAIL PROTECTED]> wrote:
>
> > > salut à tous
>
> > > je vous explique mon problème :
> > > j'ai 2 modèles (game et gamegenre pour l'exemple) liés par une
> > > relation HABTM
> > > je veux que chaque entité du modèle game soit au mois lié à une entité
> > > du modèle gamegenre
> > > comment est ce que je peux vérifier cela avec le système de validation
> > > de CakePHP ? (en gros, dans le formulaire /games/add, le champ multi
> > > select qui représente gamegenre doit avoir au moins une valeur)
>
> > > dans la branche 1.2, avant les RC, j'utilisais "if 
> > > (!isset($this->data['GameGenre'])) { /* error */ }" dans le gamecontroller
>
> > > mais depuis les RC, valider un formulaire vide renvoie "['GameGenre']
> > > => array(1) { ['GameGenre'] => string(0) '' }"
>
> > > => y a un moyen simple de gérer ça ?
>
> > > merci- Masquer le texte des messages précédents -
>
> > - Afficher le texte des messages précédents -
--~--~---------~--~----~------------~-------~--~----~

Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier  : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à