php - 在 Symfony 服务中获取路由名称
问题描述
我尝试在 Symfony 4 服务中获取当前路由的名称。
路线.yaml
test-route:
path: /test
controller: App\Controller\Test::test
服务
class Myservice {
private $u;
public function __construct(Utilities $u){
$this->u = $u;
$route = getRouteSomehow(); // should return "test-route"
}
}
我找到了这段代码来获取路线:
$requestStack->getCurrentRequest()->get('_route');
..但不确定在哪里/如何/注入什么才能使用它。
也许还有一个更简单的。
解决方案
如果您使用 symfony4 和 autowire ( https://symfony.com/doc/current/service_container/autowiring.html ),您可以注入 request_stack 服务,如下所示:
use Symfony\Component\HttpFoundation\RequestStack;
class Myservice {
private $u;
public function __construct(Utilities $u, RequestStack $requestStack) {
$this->u = $u;
$route = $requestStack->getCurrentRequest()->get('_route');
}
}
推荐阅读
- javascript - 有没有办法使用 Angular Pipes 获取格式化的日期输出
- reactjs - 如何从 React Native App 将我的长度变量发送到我的 HTTPS 服务器
- python - “axis”属性在下面的代码中是如何工作的?
- spring-boot - 远程地址是否与 x-forwarded-for 相同?
- sql - SQL Server:选择排序规则
- postgresql - Postgresql 归档的 WAL
- woocommerce - 如果用户在 WooCommerce 中购买了特定产品,则禁用购买
- text - PDFTron:如何确定文本是否溢出其边界框
- php - 检查碳日期是否与 PHP 中的 YYYYMMDD HH:MM 匹配
- java - 创建具有“下载和运行”体验的 Java11 JavaFX 应用程序的正确方法是什么?