App\Ninja\Repositories\VendorRepository::find PHP Method

find() public method

public find ( $filter = null )
    public function find($filter = null)
    {
        $query = DB::table('vendors')->join('accounts', 'accounts.id', '=', 'vendors.account_id')->join('vendor_contacts', 'vendor_contacts.vendor_id', '=', 'vendors.id')->where('vendors.account_id', '=', \Auth::user()->account_id)->where('vendor_contacts.is_primary', '=', true)->where('vendor_contacts.deleted_at', '=', null)->select(DB::raw('COALESCE(vendors.currency_id, accounts.currency_id) currency_id'), DB::raw('COALESCE(vendors.country_id, accounts.country_id) country_id'), 'vendors.public_id', 'vendors.name', 'vendor_contacts.first_name', 'vendor_contacts.last_name', 'vendors.created_at', 'vendors.work_phone', 'vendors.city', 'vendor_contacts.email', 'vendors.deleted_at', 'vendors.is_deleted', 'vendors.user_id');
        if (!\Session::get('show_trash:vendor')) {
            $query->where('vendors.deleted_at', '=', null);
        }
        if ($filter) {
            $query->where(function ($query) use($filter) {
                $query->where('vendors.name', 'like', '%' . $filter . '%')->orWhere('vendor_contacts.first_name', 'like', '%' . $filter . '%')->orWhere('vendor_contacts.last_name', 'like', '%' . $filter . '%')->orWhere('vendor_contacts.email', 'like', '%' . $filter . '%');
            });
        }
        return $query;
    }

Usage Example

 /**
  * @param $search
  * @return \Illuminate\Http\JsonResponse
  */
 public function getDatatable($search)
 {
     $datatable = new VendorDatatable();
     $query = $this->vendorRepo->find($search);
     if (!Utils::hasPermission('view_all')) {
         $query->where('vendors.user_id', '=', Auth::user()->id);
     }
     return $this->datatableService->createDatatable($datatable, $query);
 }