CakePHP3でDBのテーブルを作成したりカラム追加ができるMigration。インデックスを付与する人も多いと思うが、今回はその中でもUNIQUE制約(つまりUNIQUE INDEX)を追加/削除する方法ついてメモを残しておく。検証したCakePHPのバージョンは3.6.13。DBはMySQL5.7.26。
2020/02/16
2020/02/16
【CakePHP3】Collectionのmax(),min()関数は、最大値,最小値をもつ要素が複数あったとしても1要素しか返さない
CakePHP3の便利なCollectionクラス。Collection化したオブジェクトはextract()やfilter()等の便利な関数を備えており、DBからselectしてきたデータの加工や抽出に一役買ってくれる。
今回はその中でもmax()関数とmin()関数の挙動についてメモを残しておく。検証したCakePHPのバージョンは3.6.13。
2020/02/09
【CakePHP3】Cake\I18n\Timeクラスのmodify()の単位は、単数形複数形どちらでも良い
CakePHP3のCake\I18n\Timeクラス。PHPのdate()やstrtotime()を組み合わせて書くよりも簡単に、現在日時からN時間前やN時間後などが計算できるので使っている方も多いはず。
僕もちょうど実装で使いたいと思った時にCakeの公式ドキュメントを眺めていたらmodify()の引数で渡す時間の単位がhourだったりhoursだったりで、”s”が付いても付かなくても良さそうな記述になっていて
「どっちが正なんだ!」
と思ったので、ちょっと調べてみた。検証したCakePHPのバージョンは3.6.13。
2020/01/26
【CakePHP3】特定レコードのsave()だけ失敗する時はsaveOrFail()を使ってみよう
CakePHP3で作ったバッチがどういうわけかよくsave()で失敗してて、しかもExceptionすら吐かずにfalseだけ返すものだから
「一体原因は何なんだろ?」
って思うことがしょっちゅうあったので、その解決策を書いておく。検証したCakePHPのバージョンは3.6.13。
2020/01/19
【CakePHP3】タイプヒンティング(型宣言)の規約を読んでみた
仕事でCakePHP3を触る機会が多いのだけど、関数の引数の型を指定するタイプヒンティング(型宣言)のルールってどうするのが推奨されているのかが気になったので、調べてみた。