公開フラグ@laravel8。管理画面では表示したいが、一般には表示したくない場合は、グローバルスコープを定義したトレイトを使う

公開フラグ@laravel8。管理画面では表示したいが、一般には表示したくない場合は、グローバルスコープを定義したトレイトを使う

グローバルスコープとは、モデルを使う時は、常に有効化されている絞り込み(where)

参考URL
https://qiita.com/ll_kuma_ll/items/0af05dfe999b2fdc539d

1, laravelを新規にインストールして、Postクラスを作っておく

2, App\Traits\www_public.phpを手動で作る

3, Postクラスにwww_publicトレイとを読み込ませる

4, routes/api.phpに記述

5, テーブル定義やSeederを適当にやる

6, PostControllerで取得すると、確かにpublic_flag=1のレコードしか取得できない!

7, if文でwithoutGlobalScopeを切り分けるのが面倒なので、ユーザ認証済みだったら、そもそもグローバルスコープのwhereなし状態にする

Laravel8+SanctumでAPI認証その2(ユーザ登録・ログイン・ログアウト)

ログイン状態で切り分けしてくれるので、既存コードは修正しなくていいので楽だ!
ただクエリビルダの所は、手動でやらんとな…。