CodeLab

開発

[CakePHP5]Since 5.0.0: Using options array for the `find()` call is deprecated. Use named arguments instead.

CakePHP5ではTable::find()の書き方がかわったようです。Since 5.0.0: Using options array for the `find()` call is deprecated. Use named arg...
CakePHP

[CakePHP5]Security.saltが取得できない。

CakePHP5でSecurity.saltを利用したかったのですが、なぜか取得できません。設定してあるのになぜだろう?と、30分ぐらい悩んだのですが原因判明config/bootstrap.php で消してました。Security::se...
CakePHP

CakePHP5でコードをきれいに保つ

コードのスタイルを統一しておくことは、品質の良いコードを保つのに必須要件です。ですが、コーディング規約をいちいち気にしながらコードを書くのは非常にストレスになります。ということで、できるところは機械に任せちゃいましょう。CakePHP5でコ...
docker-compose

Composer で処理中にタイムアウトになるのを防ぐ

docker-compose系のコマンドが長くてめんどくさいのでcomposer.jsonにscriptを書いたのですが、いつの間にか強制終了されてしまいます。composerで長い時間の処理をさせようとすると、300秒でタイムアウトして強...
開発

[CakePHP]Warning: Cannot modify header information – headers already sent ..がどうしても解決できない時

他人が作った古ーいシステムをメンテナンスする時に、Warning: Cannot modify header information - headers already sent ..がでてRedirectが動かなかったり、画面が真っ白にな...
Docker

Dockerコンテナの起動、終了時にネットワーク系のエラーが出る

DockerのContainer(コンテナ)を終了させようとした時に「ERROR: error while removing network: network HOGE id FUGA has active endpoints.」とか、開始...
雑談

K855(Logicoolキーボード)+macでキー入力がおかしいとき

LogiCoolのK855というキーボードを1年ほど愛用しています。無線のメカニカルキーボード。打ち心地もいいし、ゲーミングじゃないけど新方式の無線なので遅延も特に感じないからゲームもできる。BTにも対応で3台まで切り替え可能。ゲーミングじ...
開発

docker内でcomposerをインストールする

docker内でcomposerを使えるようにしたい場合。インストールコマンドをRUNにかいてもいいんですが、もっと簡単にDockerFile内で以下のように書けばOK。COPY --from=composer /usr/bin/compo...
Laravel

LaravelでEloquentのSQLを確認する

Queryビルダーで作ったSQL文を確認したいときにはtoSQL()メソッドを使います。プレースホルダーの値も取得したい場合はgetBindings()メソッドを使います。$query = User::where('id',1);var_d...
Laravel

Laravelで複数レコードを一括で更新する

Laravelで1度のQueryで複数のレコードを一括で更新したい時は,upserts()メソッドを使います。Flight::upsert([,], , );第1引数に配列第2引数に検索キー第3引数に変更したいカラムを指定します。updat...
Git

[vscode]fatal: You have not concluded your merge. (MERGE_HEAD exists)でコンフリクトが解消できなくなった

VSCodeをつかっていて、どういうわけかコンフリクトの解消ができなくなってしまってfatal: You have not concluded your merge. (MERGE_HEAD exists)といった感じのエラーが出るようにな...
GitHub

GitHub ActionsでPHPのバージョンを指定する方法

GitHub ActionsでLaravelのバックエンドをデプロイしているのですが、突然デプロイできなくなった問題に遭遇した時の忘備録です。原因原因は、デプロイする環境(runner)にインストールされているPHPのバージョンが変わってし...
Laravel

Laravelのリレーション先のモデルを取得するときは基本的にはwithを使え

Laravelでリレーション先のモデルを結合して受け取る方法は3種類ありますが、リレーション先のモデルを効率的に取得するために、withメソッドを使用することが推奨されています。なぜでしょうか?withメソッドを使ってアクセスするwithメ...
Node.js

MacのNode.jsをnodebrewで切り替えできるようにする

nodebrewのインストールnodebrewのインストール方法は以下の通りです: ターミナルを開きます。 ターミナルで以下のコマンドを実行します:curl -L git.io/nodebrew | perl - setup インストールが...
Laravel

laravel Eloquent updateOrCreate()でmodelを更新する

LaravelのupdateOrCreateメソッドは、指定した条件に基づいてデータベース内のレコードを更新するか、存在しない場合は新しいレコードを作成します。このメソッドは非常に便利で、以下のようなシナリオで使用することができます。既存の...
AWS

terraformのbackend設定内で変数を使う

tfstateファイルをS3で管理する場合は、バックエンドの設定を行います。この際、バケット名やキー名を変数管理したいと思うことでしょう。しかし、結論から言って、Terraformのbackend設定では、直接的な変数の使用はサポートされて...
Git

GitHub Copilotが使えない

VSCodeでGitHub Copilotを使おうとしたときに、下記のエラーになる場合の対処GitHub Copilot could not connect to server. Extension activation failed: "...
Laravel

laravelのcollectionでfilterを使った時はかならずvalues()を呼ぶ

laravelのcollectionでfilterを使って絞り込んだときは、必ずvalues()を呼びましょう。こんな感じに。$new = array.filter(function(value){ return (何か条件式);}).va...
Docker

The requested image’s platform (linux/amd64) does not match the detected host platform.

M1/M2でdockerを動かしていると、Docker on Mac M1 gives: "The requested image's platform (linux/amd64) does not match the detected h...
AWS

tfenvによるTerraformインストール(for MacOS)

Terraformは、AWSやGCPなどの環境構築をコード化&自動化&デプロイするツールです。今回はこちらのインストール方法を紹介します。Terraformは複数バージョンが存在しますので、それらを簡単に切り替えられるtfenv経由でのイン...