Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%)
|
Witam,jestem początkujący w Symfony2, a wyskoczył mi problem, którego naprawdę nie wiem jak rozwiązać.
Podczas przekazywania parametrów wyskakuje mi błąd: Cytat Some mandatory parameters are missing ("idzwierzatka") to generate a URL for route "Admin_zwierze_edycja". To link do przechodzenia do formularza edycja: Cytat <a href="<?php echo $view['router']->generate('Admin_zwierze_edycja', array('idzwierzatka' => $zwierzatka->getIdzwierzatka())); ?>"> tablica routingu: Cytat Admin_zwierze_edycja: pattern: /admin/zwierze/edycja/{idzwierzatka} defaults: { _controller: MultimediaAccountBundle:Admin:zwierzeEdycja} requirements: idzwierzatka: \d+ A to z controlera ( AdminController): Cytat public function zwierzeEdycjaAction(Request $request ) { $idzwierzatka = $request->get('idzwierzatka' , '0'); $em=$this->getDoctrine()->getManager(); $zwierze = $em->getRepository('MultimediaAccountBundle:Zwierze')->find($idzwierzatka); if (!$zwierze){ return $this->createForm(new ZwierzeType(), $zwierze); } $form = $this->createForm(new ZwierzeType(), $zwierze); $em->flush(); return $this->render('MultimediaAccountBundle:Zwierze:edycja.html.php', array('form'=> $form->createView() , 'idzwierzatka'=>$idzwierzatka)); } Zrzut z Entity Zwierze Entity zwierze Bardzo bym prosił o pomoc. Dziękuje i pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 1 Dołączył: 21.10.2009 Ostrzeżenie: (0%)
|
przy każdym użyciu routera dajesz parametry (przekierowania, linki) ?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%)
|
@Kropka89
Tak, wyświetlę jeszcze jeden wpis: Cytat Admin_zwierze_nowy: pattern: /admin/zwierze/nowy defaults: { _controller: MultimediaAccountBundle:Admin:zwierzeNew } Admin_zwierze_edycja: pattern: /admin/zwierze/edycja/{idzwierzatka} defaults: { _controller: MultimediaAccountBundle:Admin:zwierzeEdycja} requirements: idzwierzatka: \d+ @masteron Po pojawieniu się listy zwierząt (zrobionej foreach, tabela), w każdym wpisie występują przyciski edytuj i usuń. edytuj Cytat <a href="<?php echo $view['router']->generate('Admin_zwierze_edycja', array('idzwierzatka' => $zwierzatka->getIdzwierzatka())); ?>"> usuń: Cytat <a href="<?php echo $view['router']->generate('Admin_zwierze_usun', array('idzwierzatka' => $zwierzatka->getIdzwierzatka())); ?>">Usuń</a> Problem w tym, że Cytat $zwierzatka->getIdzwierzatka() wyświetla poprawne id dla każdego wpisu. Przekazywanie danych w URL też jest poprawne ( z rozpaczy podam link): Cytat Nawet rzutowanie do INT nie pomaga. Ciągle jest to samo. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Skoro rzuca Ci wyjątek, to będzie do niego dołączony backtrace, a w nim, na którymś tam miejscu będzie nazwa pliku szablonu i numer linii, które skutkują wyrzuceniem wyjątku - tam masz błąd.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%)
|
Pokazujące błędy:
1. Błąd: Cytat in C:\wamp\www\projekt\app\cache\dev\classes.php at line 1236 a 1236: 1235: if ($diff = array_diff_key($variables, $mergedParams)) { 1236: throw new MissingMandatoryParametersException(sprintf('Some mandatory parameters are missing ("%s") to generate a URL for route "%s".', implode('", "', 1237: array_keys($diff)), $name)); 1238: } 2. Cytat at UrlGenerator ->doGenerate (array('idzwierzatka'), array('_controller' => 'Multimedia\AccountBundle\Controller\AdminController::zwierzeEdycjaAction'), array('idzwierzatka' => '\d+'), array(array('variable', '/', '\d+', 'idzwierzatka'), array('text', '/account/admin/zwierze/edycja')), array(), 'Admin_zwierze_edycja', false, array()) in C:\wamp\www\projekt\app\cache\dev\appdevUrlGenerator.php at line 73 a ten błąd w rozwinięciu: Cytat 71: list($variables, $defaults, $requirements, $tokens, $hostTokens) = self::$declaredRoutes[$name]; 73: return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens); 74: } 75: } Następny: Cytat at RouterHelper ->generate ('Admin_zwierze_edycja') in C:\wamp\www\projekt\src\Multimedia\AccountBundle\Resources\views\Zwierze\edycja.html.php at line 8 który wygląda tak: Cytat <form action="<?php echo $view['router']->generate('Admin_zwierze_edycja') ?>" method="post" <?php echo $view['form']->enctype($form) ?> > i wg. Netbean'sa błąd jest: Cytat Bad value " " for atribut action on element "form": DOUBLE_WHITESPACE in PATH
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
No przecież wyraźnie brakuje tutaj wymaganego parametru idzwierzatka. Cytat i wg. Netbean'sa błąd jest: Ten błąd możesz zignorować. NetBeans nie wziął pod uwagę faktu, że ten plik zawiera wstawki PHP-owskie i traktuje go jak zwykły dokument HTML.
Kod Bad value " " for atribut action on element "form": DOUBLE_WHITESPACE in PATH |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%)
|
@Crozin
Teraz zmieniłem zapytanie w Cytat //MultimediaAccountBundle:Uzytkownicy:edycja.html.php na Cytat <form action="{{ path('Admin_uzytkownicy_edycja') }}" method="POST" {{ form_enctype(form) }}> Błąd oczywiście zniknął. W AdminControllerze nic nie zmieniałem, a teraz po zatwierdzeniu wprowadzonych zmian wyskakuje nie poprawny link: Cytat Rozumiem, że przeszkadza mu {{{ path('Admin_uzytkownicy_edycja') }} tylko co ja mam tam wpisać, zeby dzialalo ? Setki prob i ciagle to samo. Chyba ze w admin controllerze mam cos zmienic. To są dopiero początki, dlatego proszę o pomoc. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
Nie możesz w pliku php korzystać z Twiga, albo jedno albo drugie.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%)
|
@destroyerr
To jeśli dobrze rozumiem, mam wysłać mu wraz z parametrem, czyli jeśli wpisze: Cytat <form action="<?php echo $view['router']->generate('Admin_uzytkownicy_edycja', array('iduzytkownika'=>$entity->getIduzytkownika())); ?>" method="post" <?php echo $view['form']->enctype($form) ?>> i w AdminController zmieniłem na: Cytat public function uzytkownicyEdycjaAction($iduzytkownika) { $em = $this->getDoctrine()->getEntityManager(); $entity = $em->getRepository('MultimediaAccountBundle:Uzytkownicy')->find($iduzytkownika); if (!$entity) { throw $this->createNotFoundException('Nie znaleziono danego ENTITY'); } $form = $this->createForm(new UzytkownicyType(), $entity); $em->flush(); return $this->render('MultimediaAccountBundle:Uzytkownicy:edycja.html.php' , array('form' => $form->createView() , 'iduzytkownika'=>$iduzytkownika)); } Strona w ogóle nie chce się załadować... |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
No to jeszcze przydałoby się wiedzieć co znaczy, że nie chce się załadować. Nie wiemy też czy na pewno korzystasz ze środowiska deweloperskiego.
W ciemno mogę tylko doradzić, abyś przejrzał logi Symfony i php/serwera.
Nie potrzebujesz flushować skoro niczego nie zmieniałeś. |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 01:36 |