グローバルスコープを設定しているのですが、その設定を外して値を取得しようと考えています。
解決したいこと: グローバルスコープをエスケープして値を取得したいです。
現状: リファレンスを参考にしてwithoutGlobalScopeと言うのを使ったのですが、書き方がおかしいのか正しく取得してくれません。空になります。dd($private_items);で確認しました。また、グローバルスコープをコメントアウトすると求めている挙動になりました。
https://readouble.com/laravel/7.x/ja/eloquent.html
controller
1 public function private_items(User $user) 2 { 3 if($user->id == Auth::id()) { 4 $private_items = $user->items()->withoutGlobalScope(ScopeItem::class)->where('status', '1')->get(); 5 return view('items.private_list')->with(['private_items' => $private_items]); 6 } else { 7 return back(); 8 } 9 }
model
1 protected static function boot() 2 { 3 parent::boot(); 4 static::addGlobalScope(New ScopeItem); 5 }
scope
1class ScopeItem implements Scope 2{ 3 public function apply(Builder $builder, Model $model) 4 { 5 $builder->where('status', '0'); 6 } 7}
検索したサイト
https://pgmemo.tokyo/data/archives/1804.html
上記なども確認しましたが、解決できずでした。書き方が怪しいだろうと予想しています。
どなたかお分かりになる方いましたら教えていただきたいです。
よろしくお願い致します。
laravel 7.x
追記
ローカルスコープを作って試しましたが上手く行きませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/14 22:43