2015年04月02日 に更新

CakePHP3で現在のパスやURLを取得する

⚠️ この記事は最終更新日から3年以上が経過しています。

過去にCakePHP2でのURL取得方法をメモしましたが、CakePHP3では取得方法が変更されていましたのでメモしておきます。

View クラス(テンプレート上)で取得する場合

今までは HtmlHelper で取得していましたが、CakePHP3 では UrlHelper で取得できます。

// 絶対パスとして取得 (/controller/action/)
<?= $this->Url->build('/controller/action/') ?>

// フル URL として取得 (http://example.com/controller/action/)
<?= $this->Url->build('/controller/action/', true) ?>

通常は絶対パスで取得され、第二引数を true にすると URL として取得されます。

View 以外のクラスで取得する場合

Router クラスを使用しますが、use 句で使用することを宣言しておく必要があります。
UrlHelper::build() も最終的には同じメソッドが呼び出されるので引数の仕様は同じです。

use Cake\Routing\Router;

class HogeController extends AppController {
    public function index() {
        // フル URL として取得
        // (http://example.com/controller/action/)
        $path = Router::url('/controller/action/', true);
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

計算問題(認証) *