Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2010, 12h09   #1
Futur Membre du Club
 
Jean Charles Bouat
Inscription : juillet 2010
Messages : 37
Détails du profil
Informations personnelles :
Nom : Jean Charles Bouat
Âge : 49

Informations forums :
Inscription : juillet 2010
Messages : 37
Points : 17
Points : 17
Par défaut Filtrer dans un Textarea et wildcar

Bonjour
Dans un filtre en frontend (tout comme dans le backend généré) je n'arrive pas à filtrer dans un textarea (misc).
C'est à dire rechercher une expression "cde" et sortir "abcde", "cdefg"... etc comme en SQL avec un LIKE %$misc%.
Voici un morceau des codes.
Dans l'action c'est du "classique" (buildQuery, setQuery, getQuery, disponible sur demande...)
Schema
Code :
1
2
3
4
5
Table:
  columns: 
    ...
    misc: { type: string(4000) }
    ...
TableForm.class.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class TableForm extends BaseTableForm {
 
    public function configure() {
        $this->useFields(array(..., misc, ....));
 
$this->setWidgets(array(
...
'misc' => new sfWidgetFormTextarea(array(), array('rows' => 5, 'cols' => 28)),
...));
 
$this->setValidators(array(
...
'misc' => new sfValidatorString(array('max_length' => 4000, 'required' => false)),
...));
 
$this->widgetSchema->setNameFormat('table[%s]');
}
}
TableFormFilter.class.php
Code :
1
2
3
4
5
6
7
class FrcapFormFilter extends BaseFrcapFormFilter {
public function configure() {
...
 $this->widgetSchema['misc'] = new sfWidgetFormTextArea(array(), array('rows' => 5, 'cols' => 30));
...
}
}
Si quelqu'un voit ce qui manque / cloche....
Ce sera Noël pour moi....
Jessybee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 16h22   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je ne comprend pas trop ta question.

Tu parles d'un problème de recherche, ce que j'ai rapidement (trop ?) assimilé à du code doctrine. Et tu donnes du code de tes form comme exemple. Et rien qui ressemble à une recherche sur ton champ.

Pourrais-tu être plus explicite ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 17h10   #3
Futur Membre du Club
 
Jean Charles Bouat
Inscription : juillet 2010
Messages : 37
Détails du profil
Informations personnelles :
Nom : Jean Charles Bouat
Âge : 49

Informations forums :
Inscription : juillet 2010
Messages : 37
Points : 17
Points : 17
Je vous salue!!
En fait ma question est très mal formulée, de plus j'ai la réponse.
Si on veut filtrer sur un champ de type Textarea { type: string(4000) } il ne faut pas mettre dans TableFormFilter.class.php
Code :
1
2
3
4
5
6
7
class TableFormFilter extends BaseTableFormFilter {
public function configure() {
...
 $this->widgetSchema['misc'] = new sfWidgetFormTextarea(array(), array('rows' => 5, 'cols' => 30));
...
}
}
Mais
Code :
1
2
3
4
5
6
7
8
class TableFormFilter extends BaseTableFormFilter {
public function configure() {
...
 $this->widgetSchema['misc'] = new sfWidgetFormFilterInput(array('with_empty' => false),
                        array('size' => '10'));
...
}
}
et là ça fonctionne (c'est à dire que si on filtre sur "cré" on peut obtenir "crétin" ou "récréation") et pas besoin de wildcars %*...
En fait l'ORM ne reconnais pas sfWidgetFormTextarea... mais il ne le dis pas (cachotier ce Doctrine!).
Pas besoin de toucher au code dans l'action ou dans le modèle.
Si ça peut aider.
Si d'autres veulent commenter, je marque résolu dans une semaine ...
Merci
Jessybee est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h27.


 
 
 
 
Partenaires

Hébergement Web