input('term')) return []; $result = collect(); $accounts = ($x=Auth::user()->all_accounts())->pluck('id'); $users = $x->transform(function($item) { return $item->user;}); # Look for User foreach (User::Search($request->input('term')) ->whereIN('id',$users->pluck('id')) ->orderBy('lastname') ->orderBy('firstname') ->limit(10)->get() as $o) { $result->push(['name'=>sprintf('US:%s %s',$o->aid,$o->name),'value'=>'/u/home/'.$o->id,'category'=>'Users']); } # Look for Account foreach (Account::Search($request->input('term')) ->whereIN('user_id',$users->pluck('id')) ->orderBy('company') ->limit(10)->get() as $o) { $result->push(['name'=>sprintf('AC:%s %s',$o->aid,$o->company),'value'=>'/u/home/'.$o->user_id,'category'=>'Accounts']); } # Look for a Service foreach (Service::Search($request->input('term')) ->whereIN('account_id',$accounts) ->orderBy('id') ->limit(10)->get() as $o) { $result->push(['name'=>sprintf('SV:%s (%s)',$o->name,$o->sid),'value'=>'/u/service/'.$o->id,'category'=>'Services']); } # Look for an Invoice foreach (Invoice::Search($request->input('term')) ->whereIN('account_id',$accounts) ->orderBy('id') ->limit(10)->get() as $o) { $result->push(['name'=>sprintf('IN:%s #%s',$o->account->name,$o->invoice_id),'value'=>'/u/invoice/'.$o->id,'category'=>'Invoices']); } # Look for an ADSL/NBN Service foreach (Adsl::Search($request->input('term')) ->whereIN('account_id',$accounts) ->orderBy('service_number') ->limit(10)->get() as $o) { $result->push(['name'=>sprintf('SV:%s (%s)',$o->name,$o->service->sid),'value'=>'/u/service/'.$o->id,'category'=>'Broadband']); } return $result; } }