凄く基本的な事だと思うのですが、Laravelのグローバルスコープがうまくできません。
以下のファイルを用意しました。
■Model
「Main.php」
namespace App\Models\J; use Illuminate\Database\Eloquent\Scope; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\DB; use Validator; class Main extends Model{ public $table='_j_main'; protected static function boot() { parent::boot(); static::addGlobalScope('preview', function (Builder $builder) { $builder->where('preview', '>', 10); }); } }
■Controller
「FindController.php」
namespace App\Http\Controllers; use Illuminate\Http\Request; use Validator; use Illuminate\Support\Facades\DB; use App\Models\J\Main; class FindController extends Controller { // public function index(Request $request) { $item = Main::all(); return view( 'find.index',[ 'item' => $item ] ); } }
■views
「index.blade.php」
@if (isset($item)) @foreach($item as $it) {{$it->name}} {{$it->preview}}<br> @endforeach @endif
目的はグローバルスコープを試したいだけなのですが、
これでページを開くと、グローバルスコープが効かず、全レコードが表示されます。
検索等で調べたりもしたのですが、何が間違っているのか分かりません。
Laravelのバージョンは8.8です。
何卒よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー