TLDR: How can I create a URL in the Controller similar to how I can use the HtmlHelper to create URLs in a View?
Problem:
I want to print the url of a controller action, in my controller (because I create my JSON string in my controller, not in a view)
In a View
, I can use $this->Html->url()
, but what about in a Controller?
Should I use defined constant like APP_DIR
+ Controller name + Controller action?)
Use the Router class.
$url = Router::url([
'controller' => 'Articles',
'action' => 'index',
'?' => ['page' => 1],
'#' => 'top'
]);
or the same thing, but in a more common/simple scenario:
$url = Router::url(['controller' => 'Articles', 'action' => 'index']);
Note: in Cake2.x, "Articles" would be lowercase.
CakePHP 2.x Router documentation
CakePHP 3.x 'Generating URLs' documentation
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With