Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

benjamincrozat/blog-v5

126 stars
2 code files
View benjamincrozat/blog-v5 on GitHub

app/Models/Link.php

Open in GitHub
use Illuminate\Database\Eloquent\Attributes\Scope;
 
class Link extends Model
{
// ...
 
#[Scope]
public function approved(Builder $query) : void
{
$query
->whereNotNull('is_approved')
->whereNull('is_declined');
}
 
// ...
}

app/Http/Controllers/Links/ListLinksController.php

Open in GitHub
use App\Models\Link;
use Illuminate\View\View;
use App\Http\Controllers\Controller;
use Illuminate\Database\Eloquent\Builder;
 
class ListLinksController extends Controller
{
public function __invoke() : View
{
$distinctUsersQuery = Link::query()
->select('user_id')
->distinct('user_id')
->whereRelation('user', function (Builder $query) {
$query
->whereNotIn('email', [
])
->whereNotNull('avatar');
});
 
return view('links.index', [
'distinctUserAvatars' => $distinctUsersQuery
->with('user')
->approved()
->inRandomOrder()
->limit(10)
->get()
->map(fn (Link $link) => $link->user->avatar),
 
'distinctUsersCount' => $distinctUsersQuery->count(),
 
'links' => Link::query()
->with('user')
->approved()
->latest('is_approved')
->paginate(12),
]);
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.