public function index(Request $request) { // Get search terms. $assetIdentifiers = preg_split('/(\\n|\\r)/', $request->input('identifiers', ''), null, PREG_SPLIT_NO_EMPTY); $this->view->identifiers = array_map('trim', $assetIdentifiers); $this->view->identifier = trim($request->input('identifier')); $this->view->tagged = $request->input('tagged'); $this->view->not_tagged = $request->input('not_tagged'); // No assets at all? if (Asset::count() === 0) { $this->alert('info', trans('app.no-assets-yet'), false); } // Build and execute query. if ($this->view->identifiers || $this->view->identifier || $this->view->tagged) { $assets = Asset::query(); if (!empty($this->view->identifiers)) { $assets->whereIn('identifier', $this->view->identifiers); } if (!empty($this->view->identifier)) { $assets->where('identifier', 'LIKE', '%' . $this->view->identifier . '%'); $this->view->quick_s = $this->view->identifier; } if ($this->view->tagged) { $assets->tagged($this->view->tagged); } $this->view->assets = $assets->paginate(50); if ($this->view->assets->total() === 0) { $this->alert('success', 'No assets found with the given criteria.', false); } } // Add extra view data, and return. $this->view->title = 'Assets'; $this->view->breadcrumbs = ['assets' => 'Assets']; $this->view->quick_t = 'a'; return $this->view; }
protected function getAssets($request) { // Get search terms. $assetIdentifiers = preg_split('/(\\n|\\r)/', $request->input('identifiers', ''), null, PREG_SPLIT_NO_EMPTY); $identifiers = array_map('trim', $assetIdentifiers); $identifier = trim($request->input('identifier')); $tagged = $request->input('tagged'); // Build and execute query. $assets = Asset::query(); if (!empty($identifiers)) { $assets->whereIn('identifier', $identifiers); } if (!empty($identifier)) { $assets->where('identifier', 'LIKE', "%{$identifier}%"); } if ($tagged) { $assets->tagged($tagged); } return $assets->get(); }