w php.ini (dla cli) wpisać:
xdebug.remote_enable=1
przed poleceniem app/console wpisać:
SERVER_PORT=9000 SERVER_NAME='PHPSTORM' php -dxdebug.remote_autostart=On app/console test
xdebug.remote_enable=1
SERVER_PORT=9000 SERVER_NAME='PHPSTORM' php -dxdebug.remote_autostart=On app/console test
Za pomocą bundla FOSJsRoutingBundle można korzystać z routingu Symfony w javascriptowym kodzie. Poniżej krótki przykład:
PHP:
/** * @Route("/ks", options={"expose" = true}, name="nfz.raport_wykbadpoz_kolumny_standardowe") * @Template("raport/kolumny_standardowe.html.twig") * * @return array */ public function kolumnyStandardoweAction() { $ar_kolumny_standardowe = $this->raportWykbadpozManager->getKolumnyStandardowe(); return compact('ar_kolumny_standardowe'); }
JavaScript:
$.wczytajKolumnyStandardowe = function(url){ var kolumny_standardowe = $("#kolumny_standardowe"); $.post(Routing.generate("nfz.raport_wykbadpoz_kolumny_standardowe"), {}, function(data){ kolumny_standardowe.html(data); }); };Należy pamiętać o options={"expose" = true} w annotacjach. Więcej informacji na githubie.
W Symfony po submicie formularza wracamy do tej samej akcji (w naszym przypadku do indexAction()). Aby to zmienić wystarczy dodać odpowiednią opcję przy tworzeniu obiektu formularza (form). Istnieje również możliwość otworzenia wyniku w nowym oknie. Całość można zobaczyć w poniższym kodzie:
/** * @Route("/", name="nfz.raport_wykbapoz") * @Template() * * @return array */ public function indexAction() { //... $form = $this->createForm('nfz_raport_wykbadpoz', $object, [ 'action' => $this->generateUrl('nfz.raport_wykbadpoz_wynik'), 'attr' => [ 'target' => '_blank' ] ]); return [ 'form' => $form->createView() ]; } /** * @Route("/wynik", name="nfz.raport_wykbadpoz_wynik") * @Template() * * @param Request $request * @return array */ public function wynikAction(Request $request) { //zabezpieczenie malutkie if($request->getMethod() != 'POST') { return new RedirectResponse($this->generateUrl('nfz.raport_wykbapoz')); } //utworzenie obiektu formularza $form = $this->createForm('nfz_raport_wykbadpoz'); //pobranie danych z submitowanego formularza $form->handleRequest($request); //walidacja formularza if($form->isValid()){ //pobranie danych z formularza $data = $form->getData(); } //... return []; }
Widać tutaj, że funkcja kontrolera wynikAction() przchwytuje dane z submitowanego w indexAction() formularza.
Czasem przed wykonaniem pewnej akcji (np. przed usunięciem pozycji) chcemy wyświetlić okienko potwierdzające czy na pewno wykonać daną czynność. Aby to zrobić wystarczy dodać do linka atrybut onclick:
Usuń
function confirmDelete(id) { return confirm("Czy na pewno usunąć wybraną pozycję (" + id + ")?"); }
DATE_FORMAT_LC3="l, d F Y"
DATE_FORMAT_LC3="l, d-m-Y"