| 제목 | 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
벨리데이션 런을 수동으로 실행 시켜 처리 할수 있습니다.