2017-11-12 12 views
0

"language"매개 변수를 CakePHP3 경로에서 액션으로 전달하려고 했으므로 해당 페이지의 언어를 설정할 수 있습니다. 내가 그것을 WOR 할 수CakePHP3 라우팅 : 컨트롤러 액션에 정적 변수 전달

$routes->connect('/es/hola', ['controller' => 'StaticPages', 'action' => 'welcome']); 
$routes->connect('/en/hello', ['controller' => 'StaticPages', 'action' => 'welcome']); 

유일한 방법은이 같은 dinamyc 매개 변수를 사용하는 것입니다 :

$routes->connect('/:lang/hola', ['controller' => 'StaticPages', 'action' => 'welcome'], ['pass' => ['lang']]); 

을 그러나 문제는이 경로가 일치하는 것입니다 :

/en/hola 
/es/hello 
... 
/fr/hello 

내가 생각 sould CakePHP3에서 이것을하는 또 다른 최선의 방법이 되겠지만, 나는 이것을 발견 할 수 없다.

감사합니다. 매개 변수는 요청을 통해 사용할 수 있습니다 컨트롤러에서

$routes->connect(
    '/es/hola', 
    [ 
     'controller' => 'StaticPages', 
     'action' => 'welcome', 
     'lang' => 'es' 
    ] 
); 

: 당신이 동적하지 않으려면

답변

2

는, 당신은 컨트롤러와 액션과 함께 즉, 기본값에 전달해야 목적 : 당신이 컨트롤러 액션에 인수로 전달하려면

$lang = $this->request->getParam('lang'); // param('lang') before CakePHP 3.4 

, 당신은 아직도 그것을 정의 할 수는 pass 옵션을 통해 전달 될 수 있습니다.

보기