CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法
2023/12/28
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で、現在処理しているコントローラー名、アクション名を取得したい場合があるかと思います。
例えば、「CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定」で記事を書きましたが、ユーザ管理システムを構築する中で、特定のコントローラーの特定のアクションのページは、ユーザ認証をしていないユーザでもページを表示する、という設定をしたいときに、処理しているコントローラー名を取得する必要がでてきます。
そんな時の処理しているコントローラー名、アクション名を取得する方法を解説します。
※この記事は CakePHP3用の内容になります。CakePHP4用の記事は「CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法」に書いていますので、こちらも合わせて確認してください。
CakePHP3で現在のコントローラーを取得する方法
下記の記述方法で、現在のコントローラーの値を取得することができます。
1 2 3 4 5 |
$this->request->controller; $this->request->params['controller']; $this->request->param('controller'); $this->request->getParam('controller'); // 3.4.0 で追加 $this->name; |
CakePHP3で現在のアクションを取得する方法
下記の記述方法で、現在のアクションの値を取得することができます。
1 2 3 4 |
$this->request->action; $this->request->params['action']; $this->request->param('action'); $this->request->getParam('action'); // 3.4.0 で追加 |
CakePHP 3.4以降なら getParam()メソッドが便利かも
コントローラー名、アクション名を取得する方法は、なんでこんなにいっぱいあるの?というくらいいろいろありますが、どれを使うかは好みで選べばいいのではないか、と思います。
あえて言うなら、「$this->name;
」は、コントローラー名の取得の対になるアクション名の取得方法がありませんので、ちょっと残念かな、と思う程度です。
また、下記の「getParam()」メソッドを利用する方法は、CakePHP 3.4.0で追加された方法ですので、3.4.0より前のバージョンを使う予定がないのであれば、この「getParam()」メソッドを利用する方法が無難なのではないか、と思います。
1 2 |
$this->request->getParam('controller'); $this->request->getParam('action'); |
また、「getParam()」メソッドは、コントローラー名やアクション名の取得だけではなく、下記の様にしてプラグイン名やプレフィックスの値を取得することもできますので、覚えておくと役に立ちそうな気がします。
1 2 3 4 5 6 7 8 |
// 使用しているプラグイン名を取得 $this->request->getParam("plugin"); // prefix名を取得 $this->request->getParam("prefix"); // パラメーター(引数)を取得 $this->request->getParam("pass"); |
3番目のパラメーターの取得に関しては、
http://example.com/controller/action/aaa/bbb/ccc
のような URLの場合、
Array ( [0] => aaa [1] => bbb [2] => ccc )
として取得できます。
参考サイトは CakePHP3の Cookbook
最後になりましたが、ここで解説をした内容は、下記のオフィシャルの Cookbookを参考にしています。
リクエストとレスポンスオブジェクト
https://book.cakephp.org/3.0/ja/controllers/request-response.html
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP 2.3 Search Pluginで検索処理 その1設置方法
CakePHPの検索プラグイン Search Pluginの設置方法と基本的な検索処理の解説です。
-
-
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
CakePHP4でコマンドを実行する際に引数(パラメータ)をコマンド内で受け取る処理について解説。複数個の引数にも対応する記述方法も解説。
-
-
CakePHP 2.3で PDFを作成する方法を調査「mpdf」「TCPDF」「FPDF」
CakePHPで PDFを編集、出力するには「mpdf」「TCPDF」「FPDF」といったプラグインがあり、使い勝手を比較検討しました。TCPDFが一番良さそうでした。
-
-
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3でOGPを設定する方法を解説。fetch、assignを使用しレイアウトファイルに編集した変数にテンプレートファイルから値を指定する。これを利用してOGPを編集する。
-
-
CakePHP4、CakePHP5系の認証処理でログインの有無の確認、ユーザ情報の取得の方法
CakePHP4系、5系のログイン認証の可否のチェック、および、ログインユーザの情報を取得する方法のまとめ。複数の方法があるが手続きが微妙に異なるためまとめてみた。
-
-
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
WYSIWYGエディタであるCKEditor4をCDNを利用して簡単にCakePHP3に導入する方法とカスタマイズする方法を解説。CakePHP3にはページごとの振り分けを行うブロック化を利用する。
-
-
CakePHP3、CakePHP4、CakePHP5のバージョンを指定してインストールする詳細な手順を解説
CakePHP3のバージョンを指定してインストールする方法を詳細解説。CakePHP3のインストールはComposerを使うため設定もほぼ自動で完了。データベースの接続情報を記載すればアプリ開発のベースが整う。
-
-
CakePHP 2.3 ID以外のカラムでアソシエーション(連携)をさせる場合
ID以外のカラムでアソシエーション(連携)させるための考え方とサンプルソースを用いての説明を行っています。
-
-
CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法
CakePHP3に付属しているデバッグのためのツール、デバッグキットを強制的に有効化、無効化する方法を解説。初期設定では開発環境としてありそうなドメインの場合のみ有効になるように設定されている。
-
-
CakePHPで同一テーブル内の値を比較する条件でレコードを取得する方法
CakePHPの同一テーブルにある項目の値を比較し条件に合致するレコードを取得する方法を解説。[”項目名”=>”値”]ではなく[”項目名 = 項目名”]と書くところがポイント。