. */ declare(strict_types=1); namespace FireflyIII\Http\Requests; use FireflyIII\Models\Category; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Facades\Log; use Illuminate\Validation\Validator; /** * Class CategoryFormRequest. */ class CategoryFormRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; /** * Get information for the controller. */ public function getCategoryData(): array { return [ 'name' => $this->convertString('name'), 'notes' => $this->stringWithNewlines('notes'), ]; } /** * Rules for this request. */ public function rules(): array { $nameRule = 'required|min:1|max:255|uniqueObjectForUser:categories,name'; /** @var null|Category $category */ $category = $this->route()->parameter('category'); if (null !== $category) { $nameRule = 'required|min:1|max:255|uniqueObjectForUser:categories,name,'.$category->id; } // fixed return [ 'name' => $nameRule, 'notes' => 'min:1|max:32768|nullable', ]; } public function withValidator(Validator $validator): void { if ($validator->fails()) { Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); } } }