laravelでグローバルスコープをエスケープして値を取得しています。
解決したいこと: withoutGlobalScopes()メソッドに引数を渡して実装したい
現状: 引数を入れると"withoutGlobalScopes() must be of the type array or null, string given"と言われてしまいます。
"arrayかnullであるべきなのに、文字列が渡っている" と理解しています。
controller
1$user->items()->withoutGlobalScopes()->where('status', '1')->get(); 2 3エラーの方⬇️ 4$user->items()->withoutGlobalScopes(ScopeItem::class)->where('status', '1')->get();
ScopeItem
1<?php 2namespace App\Scopes; 3 4use Illuminate\Database\Eloquent\Scope; 5use Illuminate\Database\Eloquent\Model; 6use Illuminate\Database\Eloquent\Builder; 7 8class ScopeItem implements Scope 9{ 10 public function apply(Builder $builder, Model $model) 11 { 12 $builder->where('status', '0'); 13 } 14}
model
1 use App\Scopes\ScopeItem; 2 3 protected static function boot() 4 { 5 parent::boot(); 6 static::addGlobalScope(New ScopeItem); 7 }
参考にしているサイト
https://readouble.com/laravel/7.x/ja/eloquent.html
https://pgmemo.tokyo/data/archives/1804.html
上記サイトと同じように書いて進めているのですが、エラーが返ってきてしまい、うまく実装出来ずにいます。
どなたかお分かりになる方いましたら、教えていただきたいです。
よろしくお願いいたします。
laravel 7.x
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/15 02:25 編集