Wie erhalte ich die aktuelle Route in Symfony 2?
Zum Beispiel, routing.yml
:
somePage:
pattern: /page/
defaults: { _controller: "AcmeBundle:Test:index" }
Wie kann ich das bekommen? somePage
Wert?
Wie erhalte ich die aktuelle Route in Symfony 2?
Zum Beispiel, routing.yml
:
somePage:
pattern: /page/
defaults: { _controller: "AcmeBundle:Test:index" }
Wie kann ich das bekommen? somePage
Wert?
Um die aktuelle Route anhand der URL zu ermitteln (zuverlässiger bei Weiterleitungen):
public function getCurrentRoute(Request $request)
{
$pathInfo = $request->getPathInfo();
$routeParams = $this->router->match($pathInfo);
$routeName = $routeParams['_route'];
if (substr($routeName, 0, 1) === '_') {
return;
}
unset($routeParams['_route']);
$data = [
'name' => $routeName,
'params' => $routeParams,
];
return $data;
}
Mit Symfony 4.2.7 bin ich in der Lage, das Folgende in meinem Twig-Template zu implementieren, das den benutzerdefinierten Routennamen anzeigt, den ich in meinem/ihren Controller(n) definiert habe.
In index.html.twig
<div class="col">
{% set current_path = app.request.get('_route') %}
{{ current_path }}
</div>
In meinem Controller
...
class ArticleController extends AbstractController {
/**
* @Route("/", name="article_list")
* @Method({"GET"})
*/
public function index() {
...
}
...
}
Das Ergebnis gibt "article_list" auf der gewünschten Seite in meinem Browser aus.
Wenn Sie den Routennamen in Ihrem Controller abrufen möchten, müssen Sie die Anfrage injizieren (anstatt sie vom Container zu erhalten, da Symfony UPGRADE und dann get('_route') aufrufen.
public function indexAction(Request $request)
{
$routeName = $request->get('_route');
}
Wenn Sie den Routennamen in Twig erhalten möchten, müssen Sie ihn wie folgt erhalten
{{ app.request.attributes.get('_route') }}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.