Controller内で、URLを取得する方法をご紹介します。
PHPであれば現在アクセスしているURLを変数に代入する方法として
$_SERVER[“REQUEST_URI”];
があるのですが、CakePHPには別のやり方でも取得できるようになっています。
ちなみに上のやり方でとこのページでは「」が取得できます。
CakePHPのコントローラーでURLを取得する場合、Routerクラスというのを使用する必要ががあるのですが、その場合まずはコントローラーの先頭で下記を宣言しておきます。
use Cake\Routing\Router;
ドメイン含んで取得する場合はこちら。
Router::url(NULL, true);
これだと現在のページ含んでのアドレスを取得することができます。
他にも幾つか種類があって、例えばドメインは省いて、ドメイン以下のURLを取得したい場合。(カレントパスでの取得)
Router::url();
他にはGETポストなどでクエリを含んでいる場合は、この方法で取得できます。
Router::reverse($this->request,true);
trueの部分をfalseに変えてもらうことでドメイン部分は省いて取得することができます。
ぜひ用途に分けて使ってもらえれば!