Laravel

LaravelLaravel

Laravelはもっとも注目を浴びている、PHPフレームワークの一つです。
普及スピードが速く日本国内外で今後ユーザー数が伸びてくることが予想されています。

フルスタックのWebアプリケーションフレームワークで、ルーティング、リエクスト処理、ビュー、クエリビルダー、ORM、DI、認証等のユーザ管理、ユニットテスト、ブラウザテストなどのフレームワークが要求される一通りの機能を実装しています。
コンソールからArtisanコマンド(Ruby on RailsのrailsコマンドやCakePHPのBakeコマンドに相当)を利用し、コントローラやビューの雛形の作成、データベーススキーマの作成等、一通りの作業を行うことができるため、素早く開発を開始することが可能です。

Laravel

Eloquentの便利機能

EloquentとはLaravelEloquentは、PHP構文を使用してデータベースとやりとりすることができるORM(Object-RelationalMapping)です。データベースとの作業に対してシンプルなAPIを提供し、開発者がレ...
Laravel

[Laravel]更新されたフィールドがあるかどうか判定する

編集フォームで、変更があった場合だけ何かするというような処理はありがちだと思いますが、そういったときに便利な機能があります。Model::isDirty()メソッドを使うと、変更があったかどうかのBool値を返してくれます。引数にフィールド...
Laravel

LaravelAdminで複数カラムのUniqueValidationを行う方法

LaravelAdminで複数カラムのUniqueValidationを行う方法がわからなかったので調査しました。前提環境はLaravel8ユーザーにタグを付与する場合を例にします。テーブル構成はこんな感じuserstagstag_user...
Laravel

laravel8のUnitTestでfackerが使えない

UnitTestとFactoryを作成してテストを実行してみたらUnknownformatter"関数名"fakerというエラーになってFakerが使えなかった。作成時に利用したコマンドはこんな感じartisanmake:testUserT...
Laravel

[Laravel]孫の集計を行う

Laravelで孫テーブルの集計をしたい場合はhasManyThroughを使ってリレーションを定義した上で、hasManyThroughで定義したリレーションに対してwithCount()などの集計関数を使う。具体的にはこんな感じpubl...
Laravel

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

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

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

Queryの共通化例えばこんなQueryがあったとして$users=\App\User::where('age','>=',20)->whereDate('created_at',today())->get();modelでpublicfu...
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-mix6Vue2.7型定義ファイルがないモジュールがあったので、@typeフォルダを作って型定義ファイルを入れてビルドしてみたが・・・Modulebuildfailed(from./node_modules/ts-loa...
Laravel

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

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

Uncaught TypeError: Vue.use is not a function

Laravelmix+vueで開発しているとUncaughtTypeError:Vue.useisnotafunctionが、出たり出なかったりすることがあるのだが、ようやく意味がわかった。ビルド途中でリロードする発生するようだwebpac...
Laravel

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

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

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

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

Laravel sail によるデバッグ設定

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

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

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

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

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

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

新規設定したLaravelSailでなぜかDBにアクセスできない。mysqlコンテナに入ってDBにログインしようとしたところ…ERROR1045(28000):Accessdeniedforuser'sail'@'localhost'(us...
Docker

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

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

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

とりあえず、公式サイトにのっとってインストールartisanコマンドでインストールする段で$phpartisansail:installWhichserviceswouldyouliketoinstall?:mysqlpgsqlmariad...