method() == 'POST') { return auth('api')->check() && auth('api')->user()->can('store', MedicalCenter::class); } else { $MedicalCenter = $this->route('MedicalCenter'); return auth('api')->check() && $MedicalCenter && auth('api')->user()->can('update', $MedicalCenter); } } public function rules() { switch ($this->method()) { case 'POST': { return [ 'name' => 'required|max:100|unique:medical_centers', 'phone_number' => 'required|digits_between:10,11', 'address' => 'required', 'city_id' => 'required|max:100|exists:cities,id', // 'operatores.*.name'=>'required|string|max:255', // 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users', // 'operatores.*.password'=>'required|string|min:6', ]; break; } case 'PUT': case 'PATCH': { $MedicalCenter = $this->route('MedicalCenter'); return [ 'name' => 'required|max:100|unique:medical_centers,name,'.$MedicalCenter->id, 'phone_number' => 'required|digits_between:10,11', 'address' => 'required', 'city_id' => 'required|max:100|exists:cities,id', ]; break; } default: break; } } }