user(); return [ 'action' => 'required|string|in:archive,restore,delete,assign_invoice', 'ids' => ['required','bail','array',Rule::exists('subscriptions', 'id')->where('company_id', $user->company()->id)], 'entity' => 'sometimes|bail|string|in:invoice,recurring_invoice', 'entity_id' => ['sometimes','bail', Rule::exists($this->entity_table, 'id')->where('company_id', $user->company()->id)], ]; } public function prepareForValidation() { $input = $this->all(); if (isset($input['ids'])) { $input['ids'] = $this->transformKeys($input['ids']); } if(isset($input['entity']) && $input['entity'] == 'recurring_invoice') { $this->entity_table = 'recurring_invoices'; } if(isset($input['entity_id']) && $input['entity_id'] != null) { $input['entity_id'] = $this->decodePrimaryKey($input['entity_id']); } $this->replace($input); } }