Codeigniter MY_Model: 无法执行验证
Codeigniter MY_Model: cannot perform validation
我正在使用下面的模型link。
https://github.com/jamierumbelow/codeigniter-base-model
你如何验证put方法中的数据。
我试过如下。
config/form_validation.php
$config = array(
'create_put' => array(
array( 'field' => 'emailid', 'label' => 'email_address', 'rules' => 'trim|required|valid_email' ),
array( 'field' => 'lastname', 'label' => 'lastname', 'rules' => 'trim|required|min_length[8]|max_length[16]' ),
array( 'field' => 'leadname', 'label' => 'first_name', 'rules' => 'trim|required|max_length[50]' ),
array( 'field' => 'website', 'label' => 'last_name', 'rules' => 'trim|required|max_length[50]' ),
array( 'field' => 'mobilenumber', 'label' => 'phone_number', 'rules' => 'trim|required|alpha_dash' )
)
并在引导控制器方法中
function create_put() {
//$this->load_model();
//var_dump($this->put()) ;
$this->load->library('form_validation');
$lead = remove_unknown_fields($this->put(),$this->form_validation->get_field_names('create_put'));
//print_r($data ); die;
$this->form_validation->set_data($lead) ;
if ($this->form_validation->run('create_put') != false){
$this->load->model('Model_lead');
$lead_id = $this->Model_lead->insert($lead);
if (!$lead_id) {
$this->response(array('status'=>'failure','message'=>'An un-expected error occured while trying to insert student details'),REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
}
else {
$this->response(array('status'=> 'success','message'=>'Student data successfully inserted'));
}
}else {
$this->response(array('status'=> 'failure','message'=>$this->form_validation->get_errors_as_array()), REST_Controller::HTTP_BAD_REQUEST);
}
}
验证总是会抛出错误。检查以下回复。
{
"status": "valid failure",
"message": []
}
我不知道为什么不执行验证。
问题是我在 postman 中选择了 form-data 而不是 header 中的 x-www-form-urlencoded 选项。
我发现在 link 下面的某人的回购中创建了一个问题。
https://github.com/alexmarton/RControl/issues/1
这也可能是问题所在。
在 header.
中选择 x-www-form-urlencoded 后一切正常
我正在使用下面的模型link。 https://github.com/jamierumbelow/codeigniter-base-model
你如何验证put方法中的数据。 我试过如下。 config/form_validation.php
$config = array(
'create_put' => array(
array( 'field' => 'emailid', 'label' => 'email_address', 'rules' => 'trim|required|valid_email' ),
array( 'field' => 'lastname', 'label' => 'lastname', 'rules' => 'trim|required|min_length[8]|max_length[16]' ),
array( 'field' => 'leadname', 'label' => 'first_name', 'rules' => 'trim|required|max_length[50]' ),
array( 'field' => 'website', 'label' => 'last_name', 'rules' => 'trim|required|max_length[50]' ),
array( 'field' => 'mobilenumber', 'label' => 'phone_number', 'rules' => 'trim|required|alpha_dash' )
)
并在引导控制器方法中
function create_put() {
//$this->load_model();
//var_dump($this->put()) ;
$this->load->library('form_validation');
$lead = remove_unknown_fields($this->put(),$this->form_validation->get_field_names('create_put'));
//print_r($data ); die;
$this->form_validation->set_data($lead) ;
if ($this->form_validation->run('create_put') != false){
$this->load->model('Model_lead');
$lead_id = $this->Model_lead->insert($lead);
if (!$lead_id) {
$this->response(array('status'=>'failure','message'=>'An un-expected error occured while trying to insert student details'),REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
}
else {
$this->response(array('status'=> 'success','message'=>'Student data successfully inserted'));
}
}else {
$this->response(array('status'=> 'failure','message'=>$this->form_validation->get_errors_as_array()), REST_Controller::HTTP_BAD_REQUEST);
}
}
验证总是会抛出错误。检查以下回复。
{
"status": "valid failure",
"message": []
}
我不知道为什么不执行验证。
问题是我在 postman 中选择了 form-data 而不是 header 中的 x-www-form-urlencoded 选项。 我发现在 link 下面的某人的回购中创建了一个问题。
https://github.com/alexmarton/RControl/issues/1
这也可能是问题所在。 在 header.
中选择 x-www-form-urlencoded 后一切正常