PHP

Laravel

[Laravel]WebAPIの内容がソートされていない

LaravelでCollectionでソートしたデータをJSONで返却して、JavaScriptで表示させたが、なぜかソートされていない。 理由 JSONオブジェクトは連想配列は順番は保証されずキー名基準になるため無意味。 Collecti...
Laravel

Laravelのモデルを共通化する(Scope)

Queryの共通化 例えばこんなQueryがあったとして $users = \App\User::where('age', '>=', 20) ->whereDate('created_at', today()) ->get(); mode...
Laravel

model::update()で更新するとObserverでキャッチできない

LaravelにObserverという機能があって、モデルが作成されたり変更された時のイベントコールバックを登録することができるのですが、なぜかUpdate時のイベントがキャッチできない問題に遭遇しました。 原因 単一モデルじゃないとキャッ...
Laravel

observerをキャンセルする

Laravelにはobserver機能があって、Modelに書き込みが会った時のイベントをキャッチして何かやらせるということができます。CakePHPで言うところのafterSave()みたいなものですね。 Observer自体は公式マニュ...
Laravel

[Laravel Mix] 型定義ファイル(.d.ts)を作ったら”TypeScript emitted no output”エラーになる

環境 Laravel-mix 6 Vue 2.7 型定義ファイルがないモジュールがあったので、@typeフォルダを作って型定義ファイルを入れてビルドしてみたが・・・ Module build failed (from ./node_modu...
Laravel

Laravel adminでユーザーのパスワードを管理する

Laravel Adminを使ってユーザーの情報を管理したい場合があると思います。ただ、FormやModelが通常とは違いAdminで独自なので、前処理、後処理をどうやってけけばいいのか悩みますね。結論から言うとこんな感じにすると良いかと思...
Laravel

Uncaught TypeError: Vue.use is not a function

Laravel mix + vue で開発していると Uncaught TypeError: Vue.use is not a function が、出たり出なかったりすることがあるのだが、ようやく意味がわかった。 ビルド途中でリロードする...
Laravel

Laravel Mix+Vue2をTypeScriptに対応させようとしてハマった件

LaravelMix+Vue2をTypeScriptに対応させるべく色々やっていたのだが色々はまりましたので、その時の忘備録です。こんなののために1日潰れました。 いまさらVue2にするとかはないと思いますがあまり情報がなかったので残してお...
CakePHP

[PHP]ゴミがレンダリングされる

CakeなりLaravelなりで、下手にコンソール出力するデバッグプリントを使って消し忘れるとめんどくさいことになります。 フレームワークだと、いろんなファイルをを経由して呼ばれるので、消し忘れるとどこでやってるかわからなくなります。フレー...
CakePHP3.x

[CakePHP]patchEntity()で渡したデータがNULLになる件

CakeでpatchEntity()で渡したカラムの中身がなぜかNULLになってしまう問題が発生。 原因は、渡したデータの変数の型やフォーマットが、DBのカラムの型と一致していなかったり、変換できない場合、NULLになるというものでした。 ...
Laravel

Laravel sail によるデバッグ設定

Laravel sail で構築したアプリのPHPデバッグを行う方法です。 設定変更 Xdebugについては標準でVer3系のものがインストールされています。 .ENV ファイルに以下の環境変数をセット SAIL_XDEBUG_MODE=d...
Laravel

[Laravel] sailのDBサーバーへのアクセスが拒否される

Laravel sail ベースで作成したコンテナのDBで新しいDBを作ろうとしたら・・・ ユーザー 'sail'@'%' によるデータベース 'xxxxxxx' へのアクセスは拒否されました。 原因 デフォルトで作られるユーザーの権限では...
CakePHP

[CakePHP]IN句を使う場合はwhere()を使うな!whereInList()を使え

通常、IN句を使って指定のIDのレコード一覧を取ってくるには $this->Users->find('all')->whre(); とすればよいのですが、$userListが空の場合エラーになってしまいます。 従来は$userListの存在...
CakePHP

[CakePHP4]ModelをcontainしたらCannot convert value of type array to string になる場合

CakePHP4であるモデルをcontain()で追加したら、下記のエラーになりました Cannot convert value of type array to string 原因 テーブルに複合PK使っていました。 その場合、接続元のテ...
Laravel

Laravel Sailでphpmyadminコンテナを追加する

Laravel Sailでphpmyadminを使う方法です。 sailが作ったdocker-compose.yml の services セクションに以下を記載しましょう。 もしくは、docker-compose.override.yml...
Laravel

[Laravel]sailでDBに接続できない

新規設定したLaravel SailでなぜかDBにアクセスできない。 mysqlコンテナに入ってDBにログインしようとしたところ… ERROR 1045 (28000): Access denied for user 'sail'@'loc...
Docker

[Ubuntu]Docker is not running. になったら

Ubuntu(ほかのLinuxでも同じかと思いますが) sail経由でdockerコンテナを起動しようとしたが… ./vendor/bin/sail build Docker is not running. $ sudo systemctl...
Laravel

php artisan sail:install で複数コンテナを選択する

とりあえず、公式サイトにのっとってインストール artisanコマンドでインストールする段で $ php artisan sail:install Which services would you like to install? : my...
Laravel

composerのよくわからないエラー

composer を使っていたらこんなのが出た。 具体的にはLaravelのSailをインストールしようとしていました。 $ composer require laravel/sail --dev could not be fully lo...
Laravel8.x

[Dusk]Laravel8 Duskで自動的にブラウザのセッションをクリアする

Laravel8 Duskでは、テストが変わってもブラウザの状態が引き継がれてしまいます。 テストが変わってログイン中の状態を引き継いでほしくないなど、いちいち気にしないと行けないのは面倒過ぎます。逆に、簡略化のために引き継いでほしいという...