.../articles/
Laravelのオブザーバーが便利だった

Laravelのオブザーバーが便利だった

2021.08.30

オブザーバーを使う目的

「データに手を加えたユーザーを記録したい」という要望があり、 データの作成者、編集者、削除者をDBに保存することになりました。

やること

DBの各テーブルにcreator,editor,deleterカラムを追加

マイグレーションファイル作成 (例)

php artisan make:migration add_creator_editor_deleter_to_all_table

Observer.phpを作成してCRUDイベントをキャッチ

namespace App\Observers;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class xxxObserver
{
    public function created(Model $model)
    {
      // データ保存後に作成者を登録する処理
    }

    public function updated(Model $model)
    {
      // データ更新後に編集者を登録する処理
    }

    public function deleted(Model $model)
    {
      // データ削除後に削除者を登録する処理
    }
}

Traitを作成してObserverが動くようにする

namespace App\Traits;

use App\Observers\xxxObserver;

trait xxxObservable
{
    public static function bootxxxObservable()
    {
        self::observe(xxxObserver::class);
    }
}

あとはModelで召喚するだけ

namespace App\Models;

use App\Traits\xxxObservable; //さっきつくったTrait
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use xxxObservable;
    // 略
}

流れ自体は意外と簡単でした。 何より良いことは、ひとつオブザーバーを作成して任意のModelに呼び出すだけで 共通の処理ができる事です。便利なので機会があれば今後も使いたいですね。

.../article/

Articles

記事

AWS AmplifyにmonorepoのNext.js(App Router)をデプロイする

AWS AmplifyにmonorepoのNext.js(App Router)をデプロイする

monorepo管理しているNext.jsをAmplifyにデプロイしようとした際にいくつか躓く内容があったのでまとめておきます。

Laravel 日本一解りやすい全文検索のマイグレーション記載方法解説

Laravel 日本一解りやすい全文検索のマイグレーション記載方法解説

Laravel + MySQLで全文検索を実装する

リモートワーク・オンライン会議でも、スムーズに制作を進めるために大切なこと[資料編]

リモートワーク・オンライン会議でも、スムーズに制作を進めるために大切なこと[資料編]

コロナ禍の影響により、リモートワークの導入をおこなっている制作会社も多く、実際に弊社でも導入しています。

売れるECサイトデザインを作るために。参考にしたいおしゃれな事例の探し方。

売れるECサイトデザインを作るために。参考にしたいおしゃれな事例の探し方。

売れるECサイトのデザインは、「この形式」という決まりはありません。ECサイトで売り上げを上げるなら、しっかりとしたコンセプトと、コンセプトを決定するまでのリサーチが必要です。

Figmaでデザインのコミット履歴を残せるプラグイン【Thought Recorder】をリリースしました

Figmaでデザインのコミット履歴を残せるプラグイン【Thought Recorder】をリリースしました

Figmaを利用するWebデザイナーの助けになれると嬉しいです。使い方は本記事をご覧ください。

制作会社の考える、業務効率化ツールのおすすめ。個人でも使いやすいサービスなど。

制作会社の考える、業務効率化ツールのおすすめ。個人でも使いやすいサービスなど。

新型コロナウイルス感染拡大の影響で、リモートワークが主流になり、弊社でも週のほとんどは各自宅で作業をしています。

ECの構築方法、おすすめのECサービス。

ECの構築方法、おすすめのECサービス。

ファッションや家電、スーパーの買い物でさえもECサイトを利用することが当たり前になりました。加えて新型コロナウイルスの影響もあり、弊社にも「どんなプラットフォームを利用したら良いか」「どれくらいコストがかかるのか」などECに関するさまざまなご相談を頂きます。

Laravelのオブザーバーが便利だった

Laravelのオブザーバーが便利だった

オブザーバーを使って、モデルのCRUDイベントキャッチしようという試み

DX(デジタルトランスフォーメーション)の全体像をざっくり解説

DX(デジタルトランスフォーメーション)の全体像をざっくり解説

もはやバズワードと化したDXという言葉ですが、実際何を意味しているのか? どのようなことをしたらいいのか? といったことを相談されるようになってきたので、DXをイメージするための全体像をざっくり解説します。

FastAPIのスキーマクラスをOpenAPIから生成する方法

FastAPIのスキーマクラスをOpenAPIから生成する方法

PythonでAPIを構築する要件があり、フレームワークに比較的モダンなFastAPIを採用しました。FastAPIはバックエンドの開発を行えば自動でOepnApi定義を生成する機能が備わっていますが、今回はこれを使わず、事前に用意したOepnApi定義からFastAPIで利用するスキーマクラスを生成する方法を紹介します。

すべての記事

お問い合わせ