. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Select; use App\Models\Device; class DeviceController extends SelectController { private $id = 'device_id'; protected function rules() { return [ 'id' => 'nullable|in:device_id,hostname' ]; } protected function searchFields($request) { return ['hostname', 'sysName']; } protected function baseQuery($request) { $this->id = $request->get('id', 'device_id'); return Device::hasAccess($request->user())->select('device_id', 'hostname', 'sysName'); } public function formatItem($device) { /** @var Device $device */ return [ 'id' => $device->{$this->id}, 'text' => $device->displayName(), ]; } }