Файл: app/Http/Controllers/OnlineController.php
Строк: 68
<?php
declare(strict_types=1);
namespace AppHttpControllers;
use AppModelsOnline;
use IlluminateDatabaseQueryJoinClause;
use IlluminateViewView;
class OnlineController extends Controller
{
    /**
     * Главная страница
     */
    public function index(): View
    {
        $guests = false;
        $online = Online::query()
            ->select('o1.*')
            ->from('online as o1')
            ->leftJoin('online as o2', static function (JoinClause $join) {
                $join->on('o1.user_id', 'o2.user_id')
                    ->on('o1.updated_at', '<', 'o2.updated_at');
            })
            ->whereNull('o2.updated_at')
            ->whereNotNull('o1.user_id')
            ->with('user')
            ->orderByDesc('updated_at')
            ->paginate(setting('onlinelist'));
        return view('pages/online', compact('online', 'guests'));
    }
    /**
     * Список всех пользователей
     */
    public function all(): View
    {
        $guests = true;
        $online = Online::query()
            ->select('o1.*')
            ->from('online as o1')
            ->leftJoin('online as o2', static function (JoinClause $join) {
                $join->on('o1.user_id', 'o2.user_id')
                    ->on('o1.updated_at', '<', 'o2.updated_at');
            })
            ->whereNull('o2.updated_at')
            ->with('user')
            ->orderByDesc('updated_at')
            ->paginate(setting('onlinelist'));
        return view('pages/online', compact('online', 'guests'));
    }
}