2009-09-28 10 views
0

Je reçois un 404 en essayant d'ajouter une nouvelle page de module. Je manque apparemment quelque chose de fondamental ici, étant un débutant à Symfony. Quelqu'un peut-il souligner ce que je manque?Symfony: ajout d'une nouvelle action/erreur de vue. (Newb question)

Merci beaucoup.


modules/admin/actions/actions.class.php

/* following executeIndex() */ 

public function executeSchedule() 
{ 
    if ($this->getRequest()->getethod() != sfRequest::POST) 
    { 
     return sfView::SUCCESS; 
    } 
    else 
    { 
     $name = $this->getRequestParameter('first_name'); 
     echo $name; 
    } 
} 

modules/admin/templates/scheduleSuccess.php

<?=set_title('Schedule')?> 

<form action="/admin/schedule" method="POST"> 
<input name="foo" type="text"> 
<?php echo submit_tag('Schedule'); ?></p 

À soumettre, je reçois cette erreur:

Sep 28 10:02:37 symfony [info] {sfAction} call "defaultActions->executeError404()" 
Sep 28 10:02:37 symfony [warning] {404} requested url: /admin/schedule 
Sep 28 10:02:37 symfony [info] {sfView} initialize view for "default/error404" 
+0

Avez-vous mis en place un itinéraire dans votre routes.yml pour acheminer l'URL pour ce contrôleur? – Zed

+0

Oui, j'ai une configuration de route pour ce lien. J'ai essayé dans les deux sens. Vous n'avez pas besoin de routes pour les actions de formulaire, cependant, n'est-ce pas? –

Répondre

1
  1. N'utilisez jamais d'URL de code fixe, utilisez des helpers comme url_for.
  2. Utilisez un cadre de formulaires.
  3. tutoriel Lire: http://www.symfony-project.org/jobeet/1_2/Doctrine/en/
+0

J'utilisais des aides de forme et me demandais s'ils contribuaient au problème. Hausser les épaules. form_tag ('admin/schedule'), input_tag ('foo'), etc. L'écho était juste pour tester une sorte de sortie. Print_r ne fonctionnait pas non plus. En remarque, changer la méthode du formulaire en GET fonctionne étrangement. Ça a été ma solution pour le moment ... –

1

Aussi, ne fait pas écho dans vos actions. Utilisez l'aide setContent.

Dans votre situation:

$name = $this->getRequestParameter('first_name'); 
$this->getResponse()->setContent($name);