merge([ 'action' => is_string($this->input('action')) ? trim($this->input('action')) : $this->input('action'), 'title' => is_string($this->input('title')) ? trim($this->input('title')) : $this->input('title'), 'url' => is_string($this->input('url')) ? trim($this->input('url')) : $this->input('url'), 'metadescription' => is_string($this->input('metadescription')) ? trim($this->input('metadescription')) : $this->input('metadescription'), 'metakeywords' => is_string($this->input('metakeywords')) ? trim($this->input('metakeywords')) : $this->input('metakeywords'), ]); } /** * @return array */ public function rules(): array { if (! $this->isMethod('post') || $this->input('action') !== 'submit') { return []; } $isUpdating = $this->filled('id'); return [ 'action' => ['required', 'string', Rule::in(['submit'])], 'id' => $isUpdating ? ['required', 'integer', 'exists:content,id'] : ['nullable'], 'title' => $isUpdating ? ['required', 'string', 'max:255'] : ['nullable', 'string', 'max:255'], 'url' => ['nullable', 'string', 'max:2000'], 'body' => ['nullable', 'string'], 'metadescription' => ['nullable', 'string', 'max:1000'], 'metakeywords' => ['nullable', 'string', 'max:1000'], 'contenttype' => ['required', 'integer', Rule::in([Content::TYPE_USEFUL, Content::TYPE_INDEX])], 'status' => ['required', 'integer', Rule::in([Content::STATUS_ENABLED, Content::STATUS_DISABLED])], 'ordinal' => ['nullable', 'integer', 'min:0'], 'role' => ['required', 'integer', Rule::in([Content::ROLE_EVERYONE, Content::ROLE_LOGGED_IN, Content::ROLE_ADMIN])], ]; } /** * @return array */ public function messages(): array { return [ 'title.required' => 'A title is required when updating existing content.', ]; } }