2010-10-15 13 views
2

Je voulais maintenant s'il y a un moyen de passer une simple chaîne à l'intérieur de url et cakephp comment la mettre à l'intérieur de l'une des entrées de mon formulaire sans écriture de code sur le côté de la vue? J'ai essayé d'appeler this-> set ("bla", "bla"); le nom du champ est bla mais rien n'a changéComment passer des données dans url en utilisant cakephp?

Répondre

3

Comme je l'ai compris la question que vous voulez avoir quelque chose comme ceci:

dans l'URL que vous avez quelque chose comme:

http://yourserver.com/controller/action?search=string 

et vous voulez mettre cette « chaîne » dans le champ de recherche, non? Imaginons ensuite que le nom de votre champ est data [champ_recherche]. (Je saute le modèle, car pour mon exemple ce n'est pas nécessaire, mais il est possible que le nom soit data [Model] [search_field]).

Puis, vous devez faire suite à l'action de votre contrôleur:

$this->data['search_string'] = $this->params['url']['search']; 
+0

Une seule chose est manquante, si le formulaire rencontre une erreur de validation après soumettre, cela déclenchera un avertissement dont j'avais besoin pour ajouter le suivi: \t if (isset ($ this-> params ['url'] ['subject'])) \t \t { \t \t \t écho $ form-> caché ('sujet', tableau ('default' => $ this-> params [ 'url'] [ 'sujet'])); \t \t} \t \t autre \t \t { \t \t \t echo $ form-> caché ('sujet'); \t \t} –

2

Vous pouvez transmettre des valeurs dans l'URL en utilisant html helper. Essayez:

echo $this->Html->link('View Some Page', array(
    'controller' => 'yourController', 
    'action' => 'view', 
    1, // id 
    '?' => array('yourField' => 'valueToPass')) 
); 
+0

devrait travailler pour ajouter deux (au lieu de vue)? –

+0

Je n'ai pas compris votre question. Si vous construisez un lien en utilisant html helper, vous pouvez passer n'importe quelle valeur de n'importe quel paramètre à n'importe quelle page que vous voulez. – bancer

+0

Oui oui c'est évident, le gâteau va-t-il savoir mettre les données dans le champ de vue? –