_validator = new Validator(); } public function save_rules($rules) { $this->_rules = $rules; } public function get_rules() { return $this->_rules; } public function validate ($data) { $rules = $this->make_rules($this->_rules); $validation = $this->_validator->make($data, $rules['array_rules']); $validation->setAliases($rules['array_alias']); // $validation->setMessages([ // 'required' => ':attribute harus diisi', // 'email' => ':email tidak valid', // ]); $validation->validate(); if ($validation->fails()) { // handling errors $this->_errors = $validation->errors(); return false; } else { return true; } } public function get_errors () { return $this->_errors->toArray(); } protected function make_rules() { $array_rules = []; $array_alias = []; foreach($this->_rules as $role_key => $role_value) { $array_rules[$role_value[0]] = $role_value[2]; $array_alias[$role_value[0]] = $role_value[1]; } $response['array_alias'] = $array_alias; $response['array_rules'] = $array_rules; return $response; } // 'name' => 'required', // 'email' => 'required|email', // 'password' => 'required|min:6', // 'confirm_password' => 'required|same:password', // 'avatar' => 'required|uploaded_file:0,500K,png,jpeg', // 'skills' => 'array', // 'skills.*.id' => 'required|numeric', // 'skills.*.percentage' => 'required|numeric' }