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
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP3で値を入力直後にバリデーションする方法解説
CakePHP3でバリデーションの実行を保存する時から入力情報を受け取るときに変更する処理の解説。CakePHP3ではnewEntity()の処理でバリデートするため1行追加で対応可能。
-
-
CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介
CakePHP4、5系の認証処理でログイン認証が通らない場合の確認方法、確認箇所を解説。ログ出力し、ステータスを確認するが、ステータスの内容も紹介。それはそのままusernameを変更する際のポイントでもある。
-
-
CakePHP3の検索プラグイン「friendsofcake/search」の様々な検索の仕方の実装方法
CakePHP3で検索をするプラグイン「friendsofcake/search」の検索条件のカスタマイズ方法の解説。検索項目を増やしたり、以上、以下での検索や、チェックボックスによる検索の方法などを解説。
-
-
CakePHP3でシェルを作成しコマンドラインから実行・CakePHP2との違い
CakePHP3のシェルスクリプトを作成し、コマンドラインから実行する方法を解説。複数単語をつなげる場合の対応方法がCakePHP2より制限が厳しくなったのでCakePHP3の命名規則の確認が必要だ。
-
-
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3で「1対多」の連携を中間テーブルを利用した「多対多」の連携に変更するときの手順のまとめ。中間テーブルの設定やModelの変更などを間違いやすい箇所を指摘しながらの解説。
-
-
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
CakePHP4でコマンドを実行する際に引数(パラメータ)をコマンド内で受け取る処理について解説。複数個の引数にも対応する記述方法も解説。
-
-
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
CakePHP3のキャッシュファイルのパーミッションエラー Error: SplFileInfo::openFile()が発生した場合の対応方法解説。app.phpにキャッシュファイルのパーミッション設定を行い、既存のファイルは削除。
-
-
CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定
CakePHP3の Authコンポーネントや CakeDC/Usersプラグインなどを利用したユーザ管理・認証システムにおいて、ログインしていなくても見ることができるページの設定方法を解説。
-
-
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。CakePHP4で使う場合のUsersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
CakePHP3のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説・3.6以降対応
CakePHP3のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。