Ok, c'est beaucoup plus clair en effet ! Désolé d'avoir imaginé que tu t'y prenais mal ;o)
Donc pour tester si ton champ est vide, tu fais bien if(!empty($this- >data['GameGenre']['GameGenre'][0])) ? Dans ce cas, je ne vois pas pourquoi tu ne peux pas refuser la validation du formulaire. Si ce if() te renvoie true, au moins une valeur a été sélectionnée dans le select multiple. C'est en tout cas comme cela que je teste les exemples que je t'ai donnés... Pour moi je n'ai aucun formulaire créé depuis la 1.2 bêta qui ne marche plus avec la RC2 nightly. Essaie de ne pas mettre "empty=>true", mais cela me semble bizarre que cela vienne de çà. Après tu peux donc faire ce if() dans le beforeSave() de ton modèle plutôt que dans ton contrôleur. A mon avis tu peux aussi utiliser la règle minLength = 1 de la classe Validation... à tester pour savoir quoi lui passer comme nom de champ. Enfin, tu peux créer une méthode perso de validation d'un tel champ, la mettre dans app_model pour l'avoir sous la main et l'utiliser dans ton beforeSave() ou dans la propriété $validate; des modèles. En espérant que cela t'aidera un peu. On 11 juil, 18:48, Dia <[EMAIL PROTECTED]> wrote: > salut > > alors, apparemment j'ai pas posé ma question de manière très claire :p > > pour faire concis (et j'espère plus clair) : > les 2 modèles sont OK, la relation HABTM entre les 2 est ok, j'ai les > bonnes tables, j'accède aux bons objets, y a aucun soucis là dessus > ce que je veux, c'est juste obliger l'utilisateur à choisir au moins > une valeur de GameGenre (c bien le nom de mon modèle, il s'appelle pas > Genre) quand il crée un Game > > donc sinon pour reprendre tes questions dans l'ordre > > 1) je veux vérifier qu'un champ de formulaire n'est pas vide > > 2) oui, HABTM déclarée correctement dans les 2 modèles (cf. le lien > que j'ai donné pour voir la déclaration dans un des modèles) > > 3) le champ représentant le modèle GameGenre est un select multiple et > son attribut name vaut data[GameGenre][GameGenre][] > > 4) j'ai bien un modèle GameGenre mais il représente bien un des > modèles "en bout de liaison", et pas le modèle correspondant à la > table "centrale" (cette table s'appelle donc game_genres_games) > pourquoi j'ai fait ça ? tout simplement pour pouvoir avoir GameGenre, > MusiqueGenre, NimportequoiGenre... > > 5) en fait le truc c'est que le !isset ne marche plus puisque > apparemment depuis les RC, les champs sont initialisés avec une chaine > vide donc dans le cas de ce champ je me retrouve avec un tableau non > vide, contenant un élément de type chaine vide donc il faudrait > carrément que je parcoure le tableau et vérifier qu'il contient plus > d'un élément ne valant pas "chaine vide"... compliqué et moche, d'où > la raison de ma question : existe t il un moyen de faire plus simple > en faisant gérer cette vérif directement par Cake... > > merci pour ta patience en tout cas... --~--~---------~--~----~------------~-------~--~----~ Groupe "Cakephp-fr". Adresse : [email protected] Pour résilier : [EMAIL PROTECTED] Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr -~----------~----~----~----~------~----~------~--~---
