CakePHP3のルーティング(routes.php)の変更が反映されない時はキャッシュのクリアを
CakePHP3のルーティングを変更しても反映されない時がある。そんなときは慌てずにキャッシュをクリアしよう!
ルーティングの設定を再設定するキャッシュのクリア方法
このルーティングの設定は「/config/routes.php」ファイルに記述します。
記述を変更すればすぐに反映されますが、時々、ルーティングの設定がうまく反映されない場合もあります。
その時は、CakePHP3のキャッシュを疑ってください。
下記のコマンドを実行してキャッシュをすべて削除します。
$ cd [CakePHPのルートフォルダ] $ bin/cake cache clear_all
そして、改めて動作を確認してみてください。
ルーティングの設定とキャッシュのクリア方法の詳細解説
ルーティング設定とは URLを自由に設計する機能
CakePHP3には、プログラムと URLを関連付けるための設定、ルーティングを設定することができるようになっています。
例えば、「Controller:test」「action:view」のプログラムを作ったとします。
CakePHP3の場合は、デフォルトでの URLは以下のようになります。
http://example.com/test/view
ですが、ルーティング(routes.php)の設定を行うことで、自由な URLを設定することができるようになります。
例えば、上記の URLを下記のように変更することもできます。
http://example.com/aaa/bbb
このような URLの変更をするのがルーティングの設定で、「/config/routes.php」ファイルに記述します。
この記事ではルーティングの設定方法の解説は行いませんので、ルーティングの設定方法を知りたい場合は、下記のオフィシャルサイトを見ていただくか、ググってください。
CakePHP3・Cookbook・ルーティング
https://book.cakephp.org/3.0/ja/development/routing.html
ルーティングの設定変更が正しく反映されないときはキャッシュをクリアしよう!
このルーティングの設定は「/config/routes.php」ファイルに記述します。
記述を変更すれば普通はすぐに反映されますが、時々、ルーティングの設定がうまく反映されない場合もあります。
その時は、CakePHP3のキャッシュを疑ってください。
ローカル環境ではあまりキャッシュを残す設定にしていないことが多いため、ついつい忘れがちですが、ルーティングの設定もキャッシュされています。
そのキャッシュを削除する場合は、下記のコマンドを実行します。
このコマンドでキャッシュをすべて削除することができます。
$ cd [CakePHPのルートフォルダ] $ bin/cake cache clear_all
キャッシュを削除したら、改めて動作の確認をしてみてください。
ちなみに、キャッシュの削除は、かつては「/tmp/cache/」フォルダの中のファイルを手作業で削除していましたが、CakePHP 3.3で上記のコマンドが実装されましたので、コマンド一発ですべて削除できるようになりました。
キャッシュを削除する方法の詳しい解説については下記に記事を書いています。
CakePHP3、CakePHP4のキャッシュをクリアする方法「bin/cake cache clear_all」を使う
また、ルーティング機能を活用して、CakePHP3の中に静的なページを組み込む方法については下記に記事を書いています。
CakePHP3で静的ページの作成は webrootか pagesを使う。トップページを参考に解説
CakePHP3の関連記事
CakePHPのpostlinkで生成した削除リンクをクリックしても処理が実行されない対処法CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールする
CakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
その他の「CakePHP3」に関する記事一覧
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP4の規約外のカラムをキーにアソシエーション(テーブル連結)する方法
CakePHPで規定外のカラム名のキーを指定してアソシエーション(テーブル連結)をする方法を解説。アソシエーション名によってはミスが発生しやすい点もあるので注意も必要。
-
-
CakePHP 2.3で PDFを作成する方法を調査「mpdf」「TCPDF」「FPDF」
CakePHPで PDFを編集、出力するには「mpdf」「TCPDF」「FPDF」といったプラグインがあり、使い勝手を比較検討しました。TCPDFが一番良さそうでした。
-
-
CakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でレコードを追加、更新(Insert、Update)する記述方法を解説。1件ずつ処理、全件をまとめて処理、条件に該当する複数件のレコードを処理方法をサンプルコードを用いて解説。
-
-
CakePHP3のプラグイン「CakeDC/Users」を日本語化・翻訳ファイルもダウンロード可
CakePHP3のユーザ管理、ログイン認証プラグインである「CakeDC/Users」のメッセージを日本語にする手順の解説とともに、日本語の翻訳ファイルを提供。ファイルを設置すれば日本語になる!
-
-
MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認
MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。
-
-
CakePHP4でcontrollerで実行したバリデーションエラーをmodelのにマージする方法
CakePHP4でcontrollerで実行したバリデーションの結果をModelのバリデーション結果に追加するメソッド「setError()」「setErrors()」の使い方の解説。
-
-
CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説
CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。
-
-
CakePHP3のアソシエーションでJOINのタイプのLEFT、INNERを切り替えながら使う方法
CakePHP3でテーブルのアソシエーションしたデータの取得をコントローラー側でINNERかLEFTを指定する方法を解説。TableファイルにINNERで指定していてもController側で変更ができる。
-
-
CakePHP4、CakePHP5のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)
CakePHP4の英語のメッセージを日本語化(多言語化)する手順を解説。オリジナルのメッセージを作成する方法やプログラムで文言を追加する場合の対応なども解説。
-
-
CakePHP3の検索プラグイン「friendsofcake/search」の設置方法・CakePHP3.6対応
CakePHP3で検索を担うプラグイン「friendsofcake/search」の紹介。基本的な設置方法の紹介のほか、処理の記述方法のバリエーション、エラーの解説など。CakeDC/searchより導入は簡単!