Добавьте это в начале вашей конфигурации маршрутизации (/app/config/routing.yml
):
# Redirecting the root ("/" to the homepage)
root:
path: /
defaults:
_controller: FrameworkBundle:Redirect:redirect
route: homepage
permanent: true
Затем в контроллере вашей домашней страницы убедитесь, что ваш маршрут включает в себя параметр _locale
:
<?php
// src/AppBundle/Controller/Homepage/HomepageController.php
namespace AppBundle\Controller\Homepage;
class HomepageController extends Controller
{
/**
* @Route("/{_locale}",
* name="homepage",
* requirements={
* "_locale": "%app.locales%"
* }
* )
* @Method({"GET", "POST"})
*/
public function homepageAction(Request $request)
{
// your code here
}
}
О FOSUserBundle
, вы должны добавить префикс в конфигурации маршрутизации.Я предполагаю, что вы уже переопределили FOSUserBundle
своим собственным UserBundle
, это будет в файле /src/UserBundle/Resources/config/routing/all.yml
.Затем вы можете выбрать, будете ли вы использовать маршрутизацию FOSUserBundle
по умолчанию или свою собственную маршрутизацию.
# Security
fos_user_security:
# FOSUserBundle default security routes
#resource: "@FOSUserBundle/Resources/config/routing/security.xml"
# UserBundle custom security routes
resource: "@UserBundle/Resources/config/routing/security.yml"
prefix: /{_locale}
requirements:
_locale: '%app.locales%'
# Profile
fos_user_profile:
# FOSUserBundle default profile routes
#resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
# UserBundle custom profile routes
resource: "@UserBundle/Resources/config/routing/profile.yml"
prefix: /{_locale}/profile
requirements:
_locale: '%app.locales%'
# Registration
fos_user_register:
# FOSUserBundle default registration routes
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
# UserBundle custom registration routes
#resource: "@UserBundle/Resources/config/routing/registration.yml"
prefix: /{_locale}/register
requirements:
_locale: '%app.locales%'
# Resetting Password
fos_user_resetting:
# FOSUserBundle default resetting routes
#resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
# UserBundle custom resetting routes
resource: "@UserBundle/Resources/config/routing/resetting.yml"
prefix: /{_locale}/resetting
requirements:
_locale: '%app.locales%'
И, конечно, я забыл упомянуть, что вам нужно указать параметр app.locales
в вашей конфигурации (/app/config/config.yml
):
parameters:
# Locale authorized for routing
app.locales : en|fr|es