searchString = $searchString; $this->bulkAction = $bulkAction; $this->action = $this->getAction($action, $route, $url); } /** * Get the view / contents that represent the component. * * @return \Illuminate\Contracts\View\View|string */ public function render() { return view('components.index.search'); } protected function getAction($action, $route, $url) { if (! empty($action)) { return $action; } if (! empty($route)) { return $this->getRouteAction($route); } if (! empty($url)) { return $this->getUrlAction($url); } return ''; } /** * Get the action for a "url" option. * * @param array|string $options * * @return string */ protected function getUrlAction($options) { if (is_array($options)) { return url($options[0], array_slice($options, 1)); } return url($options); } /** * Get the action for a "route" option. * * @param array|string $options * * @return string */ protected function getRouteAction($options) { if (is_array($options)) { $parameters = array_slice($options, 1); if (array_keys($options) === [0, 1]) { $parameters = head($parameters); } return route($options[0], $parameters); } return route($options); } }