Je suis un 3+ ans dans cakephp et face à un problème quelque peu étrange avec la soumission d'un formulaire pour actionner le contrôleur plugin (j'utilise plugin première fois). Après avoir essayé différentes choses connues, je poste celui-ci.Cakephp - Avoir un problème lors de la soumission du formulaire à l'action du contrôleur plugin
tout droit sur la question est ici la forme à mon avis « forum » « index » de la search_controller.php du plugin:
echo $form->create("Search", array('url'=>array('controller' =>
'search', 'action' => 'index','plugin'=>'forum'),
'id'=>'searchFormMain'));
<input type="text" name="data[Search][keyword]" style="width:357px; margin-left:9px;"><p><span id="searchButton"><input
type="image" src="/img/button_search.jpg" style="height:40px;width:
136px;border:0;" class="handcursor"></span></p>
</form>
Comme je soumets ce formulaire à l'action « index » du contrôleur de recherche de plugin forum, le code suivant ne fait rien d'impression:
public function index($type='') {
if(!empty($this->data)) {
pr($this->data);
die;
}
}
Alors que si je tente le même code dans beforeFilter du même contrôleur -à-dire search_controller.php il fonctionne bien et imprime en suit:
Array
(
[Search] => Array
(
[keyword] => Hello Forum
)
)
Et enfin voici le code beforeFilter (de search_controller.php):
public function beforeFilter() {
parent::beforeFilter();
if(!empty($this->data)) {
pr($this->data);
}
}
Fyi, peu importe si je en commentaire "parent :: beforeFilter();" ou même désactiver $ utilisations de mon contrôleur (si elles semblent douteuses à vous) le résultat est même à savoir le contrôle ne va pas dans "index" action dans le cas de soumettre le formulaire tout fonctionne bien dans le cas de la page appel. L'URL/action à la page est http://localhost.rfdf.org/forum/search/index. Si j'appelle l'url directement il charge le formulaire bien mais quand je le soumets, il n'obtient jamais dans l'action «d'index» du contrôleur ainsi aucune vue rendue .
Si je tente le même ensemble de code de l'environnement plugin « forum », à savoir dans l'application normale, il fonctionne très bien
J'ai essayé de trouver un moyen de sortir de cette situation pour derniers 3+ heures maintenant, mais Sans succès. J'apprécierais toute aide pour résoudre ce puzzle.
Ceci est mon code beforeFilter: fonction publique beforeFilter() {\t \t \t \t parent :: beforeFilter(); \t \t $ this-> Auth-> allowedActions = array ("*"); \t \t if (! (Vide $ this-> data)) {\t \t \t \t pr ($ this-> params); \t \t}} \t Et voici au sommet de mon de "index" l'action: (! Empty ($ this-> data)) \t \t si { \t \t \t pr ($ this-> data) ; \t \t} {\t autre \t \t \t \t print ("vide"); \t \t En cas de soumission de formulaire, à l'intérieur du "index", il n'est pas en train d'imprimer $ this-> data ni "Empty". Il ne va tout simplement pas dans l'action "index" en cas de soumission de forum. S'il vous plaît vérifier la sortie pour $ this-> params imprimé à l'intérieur de beoforeFilter dans le prochain commentaire pour tout problème d'URL. –
Tableau ( [passe] => Array() [nom] => Array() [plug-in] => forum [contrôleur] => Recherche [action] => index [url] => array ( \t \t \t [ext] => html \t \t \t [url] => Forum/Recherche/index \t \t \t) [forme] => Array() [data] => Array ( \t \t \t \t [Recherche] => Array ( \t \t \t \t \t \t \t [mot clé] => Bonjour Forum \t \t \t \t \t \t \t [avancé] => 0 \t \t \t \t \t \t \t) \t \t \t \t [Topic] => Array ( \t \t \t \t \t \t \t [pouvoir] => 0 \t \t \t \t \t \t \t [category] => \t \t \t \t \t \t \t [title] => \t \t \t \t \t \t \t [auther] = > \t \t \t \t \t \t \t [sortby] => pertinence \t \t \t \t \t \t \t [results_per_page] => 10 \t \t \t \t \t \t \t) \t \t \t) ) –