BadHorsie
BadHorsie

Reputation: 14554

CakePHP - How to get public path to application root

I'm looking for a constant or variable that will provide a public path to my application root.

I have got so far as FULL_BASE_URL which gives me http://www.example.com but I have the added problem of my application being in a sub directory (e.g. http://www.example.com/myapp/).

Is there any way to get the path like http://www.example.com/myapp/ in my controller?

Upvotes: 1

Views: 10797

Answers (3)

Abba Bryant
Abba Bryant

Reputation: 4012

<?php
    ...
    $this->redirect( Router::url( "/", true ));
    ...
?>

Router is the static class used by the HtmlHelper::link, Controller::redirect etc. the Router::url method takes a string, or array and matches it to a route. Then it returns the url that matched the route info as a string.

If you pass "/" to the Router::url call you get a relative link to the root of your app. If you pass "/" and true to the Router::url call you will prepend the full BASE_URL to the resulting relative path. This should give you what you need. If not, here is the link to the Router documentation. Try experimenting with the second boolean param - it may or may not work as expected depending on what you read / your own testing.

http://api.cakephp.org/class/router#method-Routerurl

Upvotes: 0

Shaz Ravenswood
Shaz Ravenswood

Reputation: 1835

$this->base;

http://api.cakephp.org/class/dispatcher

Upvotes: 4

JJJ
JJJ

Reputation: 33163

$this->Html->url( '/', true );

In general you should generate all links with that function, see http://book.cakephp.org/view/1448/url

Upvotes: 8

Related Questions