Я знаю, что этот пост немного устарел, и версии CakePHP с тех пор процветали.В текущей (2.1.x) версии CakePHP и даже в 1.3.x, если я не ошибаюсь, текущий контроллер / URL-адрес просмотра можно получить так:
$this->params['url'];
Хотя этот метод НЕ возвращаетПараметры, это удобно, если вы хотите добавить параметры к ссылке при создании новых URL.Например, у нас есть текущий URL:
projects / edit / 6
И мы хотим добавить действие с пользовательским параметром c_action со значением remove_image, равным единицеможет использовать $this->params['url];
и объединить его с массивом пар пользовательских параметров ключ => значение:
echo $this->Html->link('remove image', array_merge($this->params['url'], array('c_action' => 'remove_image'));
Используя вышеописанный метод, мы можем добавлять наши пользовательские параметры в ссылку и не вызыватьдлинная цепочка параметров для создания на URL, потому что $ this-> params ['url] всегда возвращает только URL действия controll.
В приведенном выше примере нам нужно было бы вручную добавить идентификатор 6обратно в URL, поэтому, возможно, окончательная сборка ссылки будет выглядеть следующим образом:
echo $this->Html->link('remove image', array_merge($this->params['url'], array($id,'c_action' => 'remove_image'));
Где $ - это идентификатор проекта, и вы бы присвоили его переменной $ id вУровень контроллера .Тогда новый URL будет:
projects / edit / 6 / c_action: remove_image
Извините, если это не имеет никакого отношения, но я столкнулся с этим вопросом, когдав поисках метода для достижения вышесказанного и думал, что другие могут извлечь из этого пользу.