【CakePHP3】TableクラスのhasMany定義に、conditionsで最大値を持つレコードのみを抽出させる方法

masyus-work-eyecatch-cakephp3

Tableクラスに定義可能なhasManyアソシエーションは、conditionsにて抽出条件を書くことが可能だ。普通はjoin先テーブルの特定のカラムの値で絞り込むとか単純なことをさせるのに使うが、たまたま

hasMany()でjoinさせたいテーブルの中で、特定のカラムが最大値のレコードだけをデフォルトで抽出したい

というニーズがあったので、これをどうにかしてhasMany()を定義する際に書けないかと思い調べてみたら方法があったのでシェアする。検証したCakePHPのバージョンは3.6.13。

もっと見る

【JavaScript】Ajax等でドメイン横断通信(CORS)する際、2回リクエストを投げる理由について(プリフライトリクエスト)

masyus-work-eyecatch-javascript

Ajax通信する際に、ドメイン横断してデータを取得したい時(Cross-Origin Resource Sharing, 略してCORSと呼ぶ)がある。ちょうど先日

「Ajax通信で1回しかリクエストを投げてないはずなのに、なぜか2回通信していて原因が分からない」

という相談をもらい、あれこれ調べたところ理由が興味深かったので、メモに残しておく。

もっと見る

【Docker】コンテナ内にvi等のエディタをインストールしていない状態で、コンテナ内ファイルを編集したい時の方法

masyus-work-eyecatch-docker

Dockerで構築する環境が、ローカルだけでなく本番でも同様のイメージを使うことを想定していた場合、極力不要なアプリケーションを入れないのが望ましい。たとえばvi等のエディタも、可能なら入れないほうがベターだろう。

 

そうやって構築した環境は、Dockerコンテナ内にsshして特定のファイルをいじりたい時にエディタが無いので困ることになるわけだが、今回はローカル環境下でDockerコンテナ内のファイルを追加・編集したい時の方法について書く。想定ホストOSはMacとする。

もっと見る