k01ken’s b10g

He110 W0r1d!

CakePHP

CakePHP3でログイン時のチェックボックスの有無によってクッキーの寿命を変更する

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。今回の記事はCakePHP3のAuthComponentを使用した前提で作っていきます。 以下のチュートリアルに基づいて、作っておいてください。 https://book.cakephp.org/3/ja/tutorials-and-examples…

CakePHP3で自己結合を行う方法

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。今回は、postsテーブルを自己結合してみます。ネットを探しても、自分の意図にあった記事がなかったので書いてみることにしました。以下はpostsテーブルの中身。 postsテーブル create tab…

CakePHP3でformatResults()を用いて後処理をする

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。findメソッドを用いて、containなどで関連もつなげて作り終わったクエリーに対して、formatResults()を用います。今回は、受け取った値に応じて、違う値を、新たに生成したカラムに入れた…

CakePHP3でReactを利用する

開発環境は、Windows 10 Pro(64bit) + CakePHP 3.7.8。qiita.com ここの記事を参考にして、CakePHPのルートディレクトリにて、 必要なモジュールをインストールしたが、bundle.jsを作成する段階でエラーが発生した。そこで、エラーメッセージに書いてある通…

CakePHP3でルーティングを行う

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.2 + XAMPP Control Panel v3.2.2。今回は具体的な事例として、トップページを、PostsController内のindexアクションにしたい場合の書き方を説明。1. /config/routes.phpを開く2.以下の部分を…

CakePHP3でプラグイン(FriendsOfCake/bootstrap-ui)を用いてBootstrapを使う

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.14。1.composer.jsonを開いて、requireの中に以下を追加 "friendsofcake/bootstrap-ui": "^1.4",2.コマンドプロンプトからcomposer updateでプラグインをインストール3.config/bootstrap.php…

CakePHP3のバリデーションでフィールドの値がユニークなものかチェックする

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。Railsだと簡単にバリデーションできるんですが、CakePHPには、なぜか公式のドキュメントには専用メソッドが書いていなくて、ネットを検索したらありました。モデルのTable内にて、 add('…

CakePHP3で画像をアップロードする際に一時ファイルなどの情報の場所

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。画像などをアップロードしても、CakePHPでは、規約により$_FILESを使うことができない。その対策として、代替の方法を書いておきます。 request->getData("fileのname属性名"); echo $img…

CakePHP3のクエリービルダーで詰まったところ

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。SQL文を直接書く時は簡単なんですけど、それをクエリービルダーをやる場合に、詰まってしまったポイントを書いておきます。 ■クエリービルダーでselect句を使う際のカラム名について クエ…

CakePHP3で画像を表示する

開発環境は、Windows 10 Professional(64bit)、CakePHP3.6.13、PHP 7.2.12。CakePHP3で画像を表示させたい場合、 HTMLヘルパーを用いた基本 /webroot/img/ディレクトリ内に入れた画像(例えば、test.jpg)を、テンプレート内にて、 Html->image("test.jpg"); ?…

CakePHP3でコンポーネントを作成する

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.6.4。複数のコントローラで使う共通処理をまとめたものをコンポーネントと言います。今回は、その作り方をメモしておきます。1.カレントディレクトリをコンポーネントを作るディレクトリに…

CakePHP3でプラグインを自作する

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.6.4。1.カレントディレクトリをアプリ内に設定して以下のコマンドを入力。今回は、プラグイン名はContactManagerとしておく。 bin\cake bake plugin ContactManager・pluginsディレクトリ…

CakePHP3でマイグレーションを行う

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.6.4。マイグレーションとは、コマンド経由で、テーブルを作成、追加、修正、削除などのテーブル操作をしつつ、そのバージョン管理(変更履歴を管理)ができるツールのことです。Phinxという…

CakePHP3でメールを送信する

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。ロリポップのレンタルサーバーから、Gmailへメールを飛ばしてみる。1.ユーザー専用ページへアクセスする 2.左サイドバーのメールからメール設定/ロリポップ!webメーラーを選択する 3…

CakePHP3で部分テンプレート(エレメント)を使う

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。異なるページで共通するHTMLを部分テンプレートとして読み込みたいと思い、作り方を調べたのでメモ。サイトのデザインを大まかに決めたら一番初めに書いておくべきものだ。これによっ…

CakePHP3で共通する処理をまとめる

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。コントローラ、モデル、ビューで共通して使えるクラスの作り方を調べました。1.srcディレクトリ内に、任意の名前のディレクトリ(今回は、Utilsディレクトリ)を作成する。 2.Utilsディ…

CakePHP3でSQL文を直接書く方法

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。できれば、クエリービルダーを用いてSQL文を書かずに済ませたいところですが、SQL文が複雑になるほど、クエリービルダーではどうやって書いてよいか分からず、直接、SQL文を書いたほ…

CakePHP3でデータベースに登録したcreatedやmodifiedやupdatedなどを表示させる

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。postsテーブルのcreatedカラム内に投稿時刻を保存して、コントローラ側で受け取って、変数$postに入れて、それをテンプレート内で表示させる。 created ?> 実行結果 4/17/18 9:16 PM…

CakePHP3で詰まった部分

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。 【問題】テンプレート部分でtitleを設定したい テンプレートの上部にて、 assign('title',__('このページのタイトルです')); ?> 【問題】metaタグのkeywordとdescriptionを設定した…

CakePHP3でタイムゾーンを変更する

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。デフォルトでは投稿時刻がUTCになっているため、日本の時間に変更する。1.config/bootstrap.php内のdate_default_timezone_set('UTC');をdate_default_timezone_set('Asia/Tokyo');に…

CakePHP3でテーブルのカラムを追加したときに反映されないトラブルの解決方法

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。 テーブルを作成した後に、alter table~のSQL文で新しくカラムを追加した後に、モデル(関係するテーブルとエンティティ)とビュー(関係するテンプレートファイル)を修正したのに、新…

CakePHP3のデフォルトで表示されるヘッダー部分にある紺色のバーを消す

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。CakePHPでサイトを作る際に、デフォルトだと、ヘッダー部分に紺色のバーが表示されます。開発時は邪魔ですよね。今回は、これを、削除する方法を書いておきます。 1.src/Template/Lay…

CakePHP3でAjaxを使う

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。※JavaScript内で、Ajaxを使うときに、ローカル環境だと、パスを指定する際は、絶対パスだと、なぜか通信エラーになるので、例えば、Apacheを使っていて、htdocsディレクトリ内に、Cak…

CakePHPで、生成されたSQLクエリを見る方法

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。開発段階で、debugkitを使うならば、データベースに接続したページで、debugkitのSql Logを見ること。使わないなら、config/app.php内のDatasourcesのlogをfalseからtrueにするだけ。…

CakePHPで他のコントローラのアクションにリダイレクトする方法

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。 ログアウトしたときに別のコントローラのアクションへリダイレクトする方法がないか困っていたので、調べました。 redirect(['controller' => 'コントローラ名', 'action' => 'アク…

CakePHPの右下にあるDebugKitを非表示にする

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。CakePHPをやっていると右下に画像が表示して、ちょっと邪魔ですよね。 これは、開発段階でデバッグするためのツールなのですが、公開する際には、表示されないほうが望ましいので、そ…

WindowsのXAMMP内でCakePHP3を導入する

開発環境は、Windows 7 Professional(32bit)+XAMPP 3.2.2。 CakePHPで、思いついたWebサービスを作ってみたいと思い、ローカル環境に導入した過程をメモします。 ここでは、XAMPPはすでに導入されている前提で、書いていきます。1.環境変数PATHに、XAMPP内に…