method = Str::upper($method); $this->action = $this->getAction($action, $route, $url); $this->model = $model; $this->class = $class; $this->role = $role; $this->novalidate = $novalidate; $this->enctype = $enctype; $this->acceptCharset = $acceptCharset; $this->submit = $submit; } /** * Get the view / contents that represent the component. * * @return \Illuminate\Contracts\View\View|string */ public function render() { return view('components.form.index'); } 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); } }