제목 | validation에 대해서 궁금한게 있습니다 | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | dg_dong | 작성시각 | 2022/02/08 01:13:05 |
|
|||
제가 하고싶은 부부은 컨트롤러 또는 모델에서 Postman으로 보낸 데이터 형식을 validation을 하고싶습니다 하지만 데이터 포맷이 JSON으로 넘어와서 규격이 안맞는거 같습니다 실제 지금 동작은 validation이 동작되지 않습니다
Post man에 요청 데이터입니다 { "Data": [ { "b": "123", "c": "1" } ] }
모델입니다 <?php namespace App\Models; use CodeIgniter\Model; use App\Controllers\Database\Qbuilder; class TestModel extends Model { protected $table = 'abc'; protected $primaryKey = 'a'; // protected $useAutoIncrement = true; protected $returnType = 'object'; protected $useSoftDeletes = false; protected $allowedFields = ['b','c']; protected $useTimestamps = false; protected $validationRules = [ // (1) 'b' => 'required|min_length[4]|max_length[10]|in_list[에에,우우,그린라이트]', 'c' => 'required|is_natural|less_than[150]', ]; // 유효성 검사 실패시 에러 메세지. protected $validationMessages = [ // (2) 'b' => [ 'required' => '이름이 필요합니다', 'min_length' => '이름은 최소 4글자 이상입니다.', 'max_length' => '이름은 최대 10글자 이하입니다.', 'in_list' => 'ㅁㄴㅇㅁㄴㅇ' ], 'c' => [ 'required' => '필수값입니다', 'is_natural' => "나이는 자연수여야 합니다.", 'less_than' => "정말 150세 이상이신가요?" ] ]; public function test($data){ $builder = $this->db->table('abc'); return $builder->insert($data['Data'][0]); } } ?>
컨트롤러 입니다 <?php namespace App\Controllers; use App\Models\TestModel; class Test extends BaseController { public function index() { $request_body = file_get_contents('php://input'); //payload data $data = json_decode($request_body,true); $richModel = new TestModel(); $save_result = $richModel->test($data); $errors = $richModel->errors(); // (2) return $this->response->setJSON([ 'result' => $save_result, 'errors' => $errors ]); } } |
|||
다음글 | Codeigniter model에서 update시 쿼리... (3) | ||
이전글 | 라우팅관련해서 질문합니다. (7) | ||
테러보이
/
2022/02/08 09:05:51 /
추천
0
|
dg_dong
/
2022/02/08 09:49:37 /
추천
0
감사합니다 참고해서 진행해보겠습니다
|
https://forum.codeigniter.com/thread-80163.html
벨리데이션 런을 수동으로 실행 시켜 처리 할수 있습니다.