2013-09-19 2 views
8

То, что я пытаюсь достичь:Pass Строка запроса в торт стиле URL в CakePHP и дать вн из HTML

Когда пользователь проходит так:

/results?val=real&x=1&y=0 

он должен показать:

/results/real.html?x=1&y=0 

и от действия я все равно должен иметь доступ к $this->request->query['val'], который должен быть равен real

Что я сделал до сих пор?

Я использую CakePHP 2.4

Router::parseExtensions('html'); 

Router::connect('/results/:val', 
      array('controller'=>'Post','action'=>'results', 
'?' => array('val'=>'[A-Za-z0-9]-_ +','x'=>'[0-9]+','y'=>'[0-9]+'))); 

ответ

10

Просто определить маршрут, как, как показано ниже в файле routes.php.

Router::connect(
    '/results/:val', 
    array(
     'controller' => 'Post', 
     'action' => 'results', 
    ), 
    array(
     'pass' => array('val') 
    ) 
); 

Вы можете установить параметры, как показано ниже, чтобы создать ссылку так, как вы хотите.

echo Router::url(array(
    'controller' => 'Post', 
    'action' => 'results', 
    'val' => 'real', 
    'ext' => 'html', 
    '?' => array('x' => '1', 'y' => '0') 
)); 

который отображает: results/real.html?x=1&y=0

+0

дайте мне знать, если у вас есть запрос или беспокойство keval SIR @KarmicDice –

+0

Благодаря @Anil однако, я отправляю форму GET ... так что вам советы, которые я беру параметры, а затем echo Router :: url, потому что URL-адрес будет сформирован автоматически ... – Karma

+0

как я могу сделать это, просто посоветуйте мне, чтобы я мог сделать это как завершено. –

 Смежные вопросы

  • Нет связанных вопросов^_^