IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Symfony 3 Redirect na route s / na konci

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Tomáš "chlastyml" Kacálek:11.9.2017 14:10

Ahoj lidi,

Trápím se nad problémem s přesměrováním v symfony 3.

Nastavení routování mám normálně přes anotace.

app:
    resource: '@AppBundle/Controller/'
    type: annotation

Controller:

class ProductController extends BaseController
{
    /**
     * @Route("/product")
     * @Method({"GET", "POST"})
     * @return Response
     */
    public function mainMethod(){
        // Some code
    }

Nyní, když chci přistoupit na adresu:

http://localhost/hellshopapi/web/product

Vyhodí mě symfony chybu:

No route found for "GET /product/"

Když se podívám do RESPONSE HEADERS

**301 Moved Permanently**
Tento a všechny budoucí požadavky by měly být směrovány na dané URI.

Viz screenshot.

Nevíte, kde se toto nastavuj, neboť vedle mám další controller a tam mi to nedělá.

Děkuji uctivě,
Chlastyml

 
Odpovědět
11.9.2017 14:10
Avatar
Tomáš "chlastyml" Kacálek:11.9.2017 14:18

Ještě mě napadlo, že když si vytáhnu všechny routy:

/** @var $router \Symfony\Component\Routing\Router */
$router = $this->container->get('router');
/** @var $collection \Symfony\Component\Routing\RouteCollection */
$collection = $router->getRouteCollection();

Tak tam moji požadovanou routu normálně vidím.

Jako když, tam přidám ten slash na konec, tak to jde. Jen mě zaráží, proč to u jednoho controlleru jde a u druhého ne.

class ProductController extends BaseController
{
    /**
     * @Route("/product/")
     * @Method({"GET", "POST"})
     * @return Response
     */
    public function mainMethod(){
        // Some code
    }
 
Nahoru Odpovědět
11.9.2017 14:18
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.