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.
Aby pozbyć się problemu wystarczy element dynamic-page zmienić na page - czyli:![]()
$qb->getQuery()->getSQL();
$qb->getParameters();
$qb = $this->createQueryBuilder('l')
->where('l.del = :del')
->andWhere('l.wysw = :wysw')
->andWhere('lower(l.nazwisko) LIKE lower(:szukana) OR lower(l.nrpwz) LIKE lower(:szukana)')
->orderBy('l.nazwisko')
->setParameters(array(
'del' => 'false',
'wysw' => 'true',
'szukana' => '%' . $szukana . '%'
));
$qb->getQuery()->getResult();
$qb = $this->createQueryBuilder('k')
->where('k.kod_res_8 = :kod_res_8')
->andWhere('lower(k.ulica) LIKE lower(:ulica)')
->setParameter('kod_res_8', $kod_res_8)
->setParameter('ulica', $ulica . '%')
->setMaxResults(1);
$qb = $this->createQueryBuilder('j')
->where('j.del = :del')
->andWhere('j.wysw = :wysw')
->andWhere('lower(j.nazw) LIKE lower(:szukana) OR lower(j.regon) LIKE lower(:szukana)')
->orderBy('j.nazw')
->setParameters(array(
'del' => 'false',
'wysw' => 'true',
'szukana' => '%' . $szukana . '%'
));
return $qb->getQuery()->getResult();
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_security_login:
pattern: /xyz_login
defaults: { _controller: FOSUserBundle:Security:login }
fos_user_security_check:
pattern: /xyz_login_check
defaults: { _controller: FOSUserBundle:Security:check }
fos_user_security_logout:
pattern: /xyz_logout
defaults: { _controller: FOSUserBundle:Security:logout }
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: fos_user_security_login
check_path: fos_user_security_check
logout:
path: fos_user_security_logout
anonymous: true