0

我正在尝试使用 CodeIgniter 对 Angularjs 发布的 json 数据的验证库。问题是当我去设置验证规则时,json 对象未被 Codeigniter 识别为 post 值。有人知道如何为 json 对象设置 Codeigniter 验证规则吗?

    $data = json_decode(file_get_contents("php://input"));
    //die($data->name); = "Bob"
    $this->form_validation->set_rules($data->name, 'Name', 'trim|required|min_length[3]');
       if($this->form_validation->run() == FALSE) { 
          $this->output->set_output(validation_errors()); 
       }
4

1 回答 1

1

如果 Angular 通过 POST 发送数据,它们应该是可用的。试着var_dump($_POST)看看里面是否有任何东西(也许它是畸形的?)。

如果没有,你可以试试这个“hack”:

 $_POST = json_decode(file_get_contents("php://input"), true);

在您的验证之前。

因此,请执行以下操作:

$_POST = json_decode(file_get_contents("php://input"), true);
$this->form_validation->set_rules($data->name, 'Name', 'trim|required|min_length[3]');
if(!$this->form_validation->run()) { 
   $this->output->set_output(validation_errors()); 
}
于 2013-09-26T16:32:38.043 回答