so = System::findOrNew($request->system_id); return Gate::allows($this->so->exists ? 'update' : 'create',$this->so); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(Request $request) { if (! $request->isMethod('post')) return []; if ((! $this->so->exists) && ($request->action == 'create')) { return [ 'name' => 'required|min:3', ]; } return array_filter(array_merge( [ 'name' => 'required|min:3', ], ($this->so->exists || ($request->action != 'create')) ? [ 'location' => 'required|min:3', 'sysop' => 'required|min:3', 'phone' => 'nullable|regex:/^([0-9-]+)$/', 'address' => 'nullable|regex:/^(?!:\/\/)(?=.{1,255}$)((.{1,63}\.){1,127}(?![0-9]*$)[a-z0-9-]+\.?)$/i', 'port' => 'nullable|digits_between:2,5', 'method' => 'nullable|numeric', 'mailer_type' => 'nullable|numeric', 'mailer_address' => 'nullable|regex:/^(?!:\/\/)(?=.{1,255}$)((.{1,63}\.){1,127}(?![0-9]*$)[a-z0-9-]+\.?)$/i', 'mailer_port' => 'nullable|digits_between:2,5', 'zt_id' => 'nullable|size:10|regex:/^([A-Fa-f0-9]){10}$/|unique:systems,zt_id,'.($this->so->exists ? $this->so->id : 0), ] : [], $this->so->exists ? [ 'active' => 'required|boolean', 'hold' => 'required|boolean', ] : [], )); } }