'required|string|max:50', 'worker_id' => 'required|integer|exists:runner_workers,id', 'user_id' => 'required|integer|exists:user,id', 'amount' => 'required|numeric|min:0', 'status' => 'nullable|integer|in:0,1,2,3', 'deduct_reason' => 'nullable|string|max:255', 'paid_at' => 'nullable|date', 'refund_at' => 'nullable|date', 'deducted_at' => 'nullable|date', ]; } public function messages(): array { return [ 'deposit_no.required' => '保证金单号不能为空', 'worker_id.required' => '跑腿员不能为空', 'user_id.required' => '用户不能为空', 'amount.required' => '金额不能为空', ]; } }