PHP

Laravel8.x

[Laravel8] Model::value()の実装が意味不明

こんなコードを書いたら $user_id = User::where()->first()->value('id'); $user_id の中身は 1でした。 なんだそりゃ?where()が無視されてしまうみたい。 $user = User...
Docker

Laravel Duskを自前のDocker経由で動かす

色々試行錯誤して、自前のDocker環境でDuskを起動することができたのでその時のメモです。 基本的なインストール方法は公式をみてもらうとして、それ以外のアンドキュメンテっとな部分についてのみ記載します。 環境設定ファイル ルートに .e...
Laravel

Laravel Duskをsailから動かしてみる(動いた)

前回、Duskを動かすために色々試してみたのですが、うまくいかなかったので、Sailでやってみました。 結論 急ぐ人向けに結論だけ先に述べます。 Sail経由でDuskを動かす場合は、sailコマンド経由でやりましょう。 ./vendor/...
Laravel

Laravel Duskが動かん(on Docker) (失敗編)

Laravelでテストコードを書いてますが、通常のUnitTestはHTTPレスポンスの中身のテキストしかテストできません。jQueryとかVueとかフロントでレンダリングしているものに関してはブラウザ経由でアクセスする必要があります。 こ...
Laravel

[laravel]dockerで動かしているアプリに対して、ホストでartisanしたらダメ、絶対。

artisanうまく動かないなぁと思って、下記コマンドでキャッシュをクリアしたら。 php artisan cache:clear php artisan config:cache 根本的に動かなくなった There is no exist...
Laravel8.x

[Laravel]クラス名が重複しているエラー

laravel で artisan コマンドを使うと何故かこんな表示が Cannot declare class (クラス名), because the name is already in use 色々調べてみたのだが、別にクラス名が重複...
PHP

PHP-FPMでSIGSEGVエラーが出る(たぶんjetpackのせい)

概要 Wrodpressが動いているWebサーバーで、時折以下のような画面で表示されない問題が発生するようになったので、追跡してみた。 Service Unavailable The server is temporarily unable...
CakePHP3.x

[CakePHP3.x]buildRules()メソッドでもエラーメッセージが出せる

belogsToとかの存在チェックのバリデーションを書くと思いますが、実はbuildRules()のところでもできちゃいます。 何もしないと、存在しないIDを保存しようとすると This value does not exist という感じ...
CakePHP3.x

[CakePHP]phinxlogと現状のDBが合ってない時の最終手段

なんか知らんが、カラムがないって言われる・・・ Error: SQLSTATE: Column not found: 1054 Unknown column 'hogehoge_id' in 'where clause' 確かにテーブルには...
Docker

VSCodeでPHPのxdebugしようとしても[Step Debug] Time-out connecting to debugging client になる

WSL2上のUbuntuで動いているDockerコンテナ動かしていたら、こんな感じのエラーになりました。 PHP message: Xdebug: Time-out connecting to debugging client, waite...
PHP

コンソールでphpinfo()を実行したい

PHPの設定情報を知りたい場合、phpinfo()を実行すればよいのですが、いちいち公開フォルダにphpinfo()を書いたPHPファイルを置いてブラウザで確認するのは面倒。 できればコンソールで実行して確認したいってことがあります。 コン...
Laravel8.x

Laravel sailでLaravel開発&デバッグ環境構築

動作環境 今回の環境は以下の通り Ubuntu Docker(インストール済み) 作業環境は Windows10Pro VSCode DockerDesktop 今回は、Ubuntu上で構築したDocker環境を、Windows10から接続...
PHP

VSCodeにコンテナ内のPHPを指定する方法

VSCodeでPHP IntelliSenseを有効化すると、こんな画面が表示される場合があります。 通常はsetting.jsonにphpのバイナリがある場所を指定すればOKです。 ですがPHPをDockerで動かしている場合、そもそもロ...
BootStrap

CakePHP4にBootstrap4を組み込んでみる

CakePHP4にBootstrap4を組み込む方法はいくつかあるかと思います。 単純に、Bootstrapをダウンロードしてきて、webrootに配置。layoutファイルなどで読みこませるだけでも使うことは可能ですが、今回はプラグインを...
CakePHP3.x

コントローラーから直接画像を出力させる

今回は、コントローラーから画像を出力させる方法をご紹介します。 画像をファイル出力してリンクさせる方法もありますが、一時的な画像の場合は後処理が面倒です。 そこで今回は直接レスポンスでバイナリを返すという方法をご紹介します。 なお、テキスト...
CakePHP3.x

[CakePHP4]途中で追加したカラムが保存されない

Modelの設計を行っているときに、途中でカラムを追加するというようなことはよく発生すると思います。 ですが、たまに追加したカラムがなぜか保存されないという問題が発生します。 この問題は、だいたいはEntityの$_accessibleプロ...
CakePHP3.x

[CakePHP4]migration_diff しても差分が認識されない

テーブル定義を直接変更した後にmigration_diffコマンドを使うと差分を認識してMigrationファイルを自動生成してくれる便利な機能があります。 ./bin/cake bake migration_diff (設定名) ですが、...
CakePHP3.x

エラー画面のレイアウトを変更する

CakePHP4でレイアウト、つまり大枠の部分のデザインテンプレートは、デフォルトでは template/layout/default.php が使われます。 これは、レイアウトファイルといわれていますが、デフォルトのレイアウトファイルを変...
CakePHP3.x

[CakePHP4]Queryからの日付取得

CakePHP4でqueryからカラムの日付をstrtotime()で変換しようとしたら以下のようなエラーになります。 strtotime() expects parameter 1 to be string, object given 以...
CakePHP3.x

PHPのオブジェクトコピー

CakePHPのqueryビルダで、こんな感じで条件を変えて連続して結果を取得したいなぁ‥というとき。 例えばこんな感じのことをしたいとすると $query = $this->find()->where(共通の複雑な条件); $a = $q...