2013-09-26 54 views
0

我想我們CodeIgniter的驗證庫在Angularjs發佈的json數據上。問題是當我去設置驗證規則時,json對象不被Codeigniter識別爲後期值。任何人都知道如何爲json對象設置Codeigniter驗證規則?Angular和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()); 
     } 

回答

1

如果Angular通過POST發送數據,它們應該可用。嘗試var_dump($_POST)以查看是否有任何內容(可能是格式錯誤?)。

如果沒有,你可以試試這個 「黑客」:

$_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()); 
} 
+0

你的黑客作品...謝謝。 – suncoastkid

+0

打開一個網站管理員工具(在鉻)或螢火蟲(在Firefox中),並看看什麼是發送到服務器。 – Paulina

+0

嗨,寶琳娜!我們如何使用$ data-> name? – Samphors