php - Symfony @Route 注解 i18n : Is it possible to have a fallback for languages not explicitly declared?

标签 php symfony routes annotations

在 Symfony 中使用 @Route 注释我可以执行以下操作:

/**
 * @Route({
 *     "en": "/{_locale}/registration",
 *     "de": "/{_locale}/registrierung",
 * },
 * name="registration",
 * defaults={
 *     "_locale":"%kernel.default_locale%"
 * },
 * requirements={
 *     "_locale":"^[a-z]{2}?$"
 * })
 */
public function defaultAction() { }

英语访问者可以调用www.mysite.com/en/registration,德语访问者可以调用www.mysite.com/de/registrierung

是否可以为未明确声明的语言声明默认值?这样的路线例如es 或 fr 访问者的工作方式类似于 www.mysite.com/es/regwww.mysite.com/fr/reg?

伪代码:

/**
 * @Route({
 *     "en": "/{_locale}/registration",
 *     "de": "/{_locale}/registrierung",
 *     "_default_": /{_locale}/reg"
 * },
 * name="registration",
 * defaults={
 *     "_locale":"%kernel.default_locale%"
 * },
 * requirements={
 *     "_locale":"^[a-z]{2}?$"
 * })
 */
public function defaultAction() { }

最佳答案

Currently不可能通过一个注释来做到这一点。 但是,您可以创建第二个回退操作。此外,它们可以按 priority 排序。 .

例子

/**
 * @Route({
 *     "en": "/{_locale}/registration",
 *     "de": "/{_locale}/registrierung",
 * },
 * name="registration",
 * defaults={
 *     "_locale":"%kernel.default_locale%"
 * },
 * priority="1",
 * requirements={
 *     "_locale":"^[a-z]{2}?$"
 * })
 */
public function defaultAction() {}

/**
 * @Route("/{_locale}/registration",
 * name="registration_fallback",
 * priority="0",
 * requirements={
 *     "_locale":"^[a-z]{2}?$"
 * })
 */
public function fallbackDefaultAction() {
    $this->defaultAction();
}

关于php - Symfony @Route 注解 i18n : Is it possible to have a fallback for languages not explicitly declared?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64776402/

相关文章:

PHP_NEW_EXTENSION() 什么都不做

php - Symfony 4 中的注解

ruby-on-rails - 如何在rails中将静态页面的输入保存到数据库

model-view-controller - 使用 DeftJs 在 Extjs 中进行路由

javascript - 在 Ember 中命名和声明嵌套 CRUD 页面的正确方法

php - 我需要有关如何让我的插入代码在 php 和 mysql 中工作的提示

php - 不使用隐藏字段的 Paypal 付款

php - 从函数返回两个值

php - 在symfony2的entites文件夹中保持表的相同名称

symfony - Composer 和 mamp ssl 扩展不能一起工作