0

アップロード入力があり、CI form_validation ライブラリを介してコールバック関数への引数を解析しようとしています。

$this->form_validation->set_rules('orderfile', 'Order Form'," trim|callback_upload_check[$account_id]");

これは以下を呼び出します:

public function upload_check($str, $id)
{
    $errors = $this->do_upload($id);

    if(isset($errors['error']))
    {
        $this->form_validation->set_message('upload_check', $errors['error']);

        return FALSE;
    }else{
        return TRUE;
    }
}

Codeigniter Userguideは、関数を呼び出すときに、最初の引数が関数内の 2 番目の引数として解析されると述べています。

どちらの引数も解析されません。Codeigniter フォーラムでこの投稿を見つけました。 これは、何が起こっているかを説明しているようです (変数が取り除かれています)。<input type="text" />params の作業に変更すると...この問題を回避する方法はありますか?

4

4 に答える 4

0

これは古い質問であることは知っていますが、同じ問題を抱えていました.2番目のパラメーターが引用符で囲まれていることに最終的に気付いたので$id、値1で を渡すと、実際には"1".

したがって、元の質問に対して、次のように関数をコールバックする必要があります。

$this->form_validation->set_rules('orderfile', 'Order Form'," trim|callback_upload_check[".$account_id."]");

そして、あなたのコールバック関数で:

public function upload_check($str, $id){
  $actual_id=str_replace('"', "", $id)
}
于 2013-01-20T13:20:16.410 に答える
0

次のようにコードを編集する必要があります。

$this->form_validation->set_rules('orderfile', 'Order Form'," trim|callback_upload_check[".$account_id."]");

また、form_validation->set_rules で id に値を渡していないことに気付きました。そのため、関数で次のことを行う必要があります。

public function upload_check($str, $id=0){..}
于 2012-08-22T12:20:39.930 に答える
0

関数を次のように変更する必要があります。

public function upload_check($orderfile)
{
    $errors = $this->do_upload($orderfile);

    if(isset($errors['error']))
    {
        $this->form_validation->set_message('upload_check', $errors['error']);

        return FALSE;
    }else{
        return TRUE;
    }
}
于 2012-08-22T18:41:40.977 に答える