input('search'); $this->merge([ 'search' => is_string($search) ? trim($search) : $search, ]); } /** * @return array> */ public function rules(): array { return [ 'search' => ['nullable', 'string', 'max:255'], 'category_id' => ['nullable', 'integer'], 'page' => ['nullable', 'integer', 'min:1'], ]; } public function searchTerm(): ?string { $search = $this->validated('search'); return is_string($search) && $search !== '' ? $search : null; } public function categoryId(): ?int { $categoryId = $this->validated('category_id'); if ($categoryId === null || (int) $categoryId === -1) { return null; } return (int) $categoryId; } }