mgsmus evet yine öyle olmuş 🙂
ben iki farklı when olduğunu gözden kaçırmışım hocam. Anladım şimdi bazı ek sorular sormak istiyorum.
1)
$role = $request->string('role');
$users = DB::table('users')
->when($isAdmin, function ($query) {
return $query->where('role', 'admin');
})
->when($isActive, function ($query) {
return $query->where('status', 'active');
})
->get();
böyle yapmakla
$users = DB::table("users")
->where("role","admin")
->where("status","active")
->get();
return $users;
böyle yapmak arasında ne gibi farklar var ?
2) Peki Collection::when() hangi durumlarda kullanılmalı ve kullanılabilir.
Sizin dediklerinizi bide detaylı şekiilde anlamak amacıyla chatgptden kod örnekleri istedim ve bana şöyle bir şey verdi
Builder::when() Örneği:
$query = User::query()
->when($isAdmin, function ($query) {
return $query->where('role', 'admin');
})
->get();
ve
Collection::when() Örneği:
$filteredUsers = $users->when($isAdmin, function ($collection) {
return $collection->filter(function ($user) {
return $user->role === 'admin';
});
});
kullanımda ne gibi farklar var.