HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/sarvodayahospital/app/Http/Controllers/CSRController.php
<?php

namespace App\Http\Controllers;

use App\Models\CMSPage;
use App\Models\CSR;
use Artesaos\SEOTools\Facades\OpenGraph;
use Artesaos\SEOTools\Facades\SEOMeta;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class CSRController extends Controller
{
    public function index(Request $request) {
        $by_year = $request->filled('year') ? (int) $request->get('year') : 0;
        $by_month = $request->filled('month') ? (int) $request->get('month') : 0;
        $seo = [];

        $query = CSR::query();

        $query->when(
            $by_year > 0, function ($q) use ($by_year) {
                return $q->whereYear('CSRDate', $by_year);
            }
        );

        $query->when(
            in_array($by_month, range(1, 12)), function ($q) use ($by_month) {
                return $q->whereMonth('CSRDate', $by_month);
            }
        );

        $csrInitiatives =  $query->orderBy('CSRDate', 'DESC')->paginate(12)->appends(request()->query());

        $years = CSR::query()
            ->select(DB::raw('YEAR(CSRDate) as publicationYear'))
            ->groupBy('publicationYear')
            ->orderBy('publicationYear', 'DESC')
            ->get();

        $cmsPage = CMSPage::query()
            ->where('Slug', request()->path())
            ->firstOrFail();

        if ($cmsPage) {
            $seo = $cmsPage->seoComponent()->first();
        }

        return view('pages.csr', compact('csrInitiatives', 'years', 'seo'));
    }
}