xxxxxxxxxx
$freePages = Page::where(function ($query) {
$query->where('menu_id', '<>', $this->menu->id);
$query->orWhereNull('menu_id');
})->where('status', '=', true)
->get();
xxxxxxxxxx
$users = DB::table('users')
->where('votes', '>', 100)
->orWhere(function($query) {
$query->where('name', 'Abigail')
->where('votes', '>', 50);
})
->get();
xxxxxxxxxx
$results = DB::table('orders')
->where('branch_id', Auth::user()->branch_id)
->when($request->customer_id, function($query) use ($request){
return $query->where('customer_id', $request->customer_id);
})
->get();
xxxxxxxxxx
$query = Author::query();
$query->when(request('filter_by') == 'likes', function ($q) {
return $q->where('likes', '>', request('likes_amount', 0));
});
$query->when(request('filter_by') == 'date', function ($q) {
return $q->orderBy('created_at', request('ordering_rule', 'desc'));
});
$authors = $query->get();
xxxxxxxxxx
This:
Model::where()->get();
Is the same as:
Model::query()->where()->get();
Model::query() used to instantiate a query and then build up conditions based on request variables.
$query = Model::query();
if ($request->color) {
$query->where('color', $request->color);
}
xxxxxxxxxx
DB::table('users')->insert([
'email' => 'kayla@example.com',
'votes' => 5
]);
xxxxxxxxxx
$users = DB::table('users')
->when($role, function ($query, $role) {
$query->where('role_id', $role);
})
->get();
xxxxxxxxxx
<?php
Route::get('games', function () {
$games = DB::table('games')->get();
return view('games', ['games' => $games]);
});
xxxxxxxxxx
use Illuminate\Database\Eloquent\Builder;
public function scopeFakePersons(Builder $query): Builder
{
return $query->where('is_fake', 1);
}
xxxxxxxxxx
Visitor::select('country')
->withCount('id')
->groupBy('country')
->latest()
->get()
//or
Visitor::query()->groupBy('country')->orderByDesc('count')->select('country' ,DB::raw('COUNT(1) as count'))->get()