0

カスタム関数が機能していません。渡された値がデータベースに存在しないかどうかを確認していますが、エラーメッセージが返されます。私が間違っていることは何ですか?
コントローラ機能

function sp_exists($str)
        {
            $this->user_model->sp_exists($str);
            $this->form_validation->set_message('sp_exists', 'The %s field does not exists');
        }

モデル機能

function sp_exists($str)
    {
        $this->db->where('member_id',$str);
        $query = $this->db->get('user');
        if ($query->num_rows() > 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

コールバック関数

$this->form_validation->set_rules('sponsor_id', 'Sponsor ID', 'trim|required|xss_clean|callback_sp_exists');
4

2 に答える 2

5

ユーザーガイドを見ましたか?これを行う方法を明確に説明しています。

まず、モデル関数を次のように変更する必要があると思います。

function sp_exists($str)
{
  $this->db->where('member_id',$str);
  $query = $this->db->get('user');
  return $query->num_rows() > 0;
}

そして、コントローラーは次のようになります。

function sp_exists($str)
{
  if(!$this->user_model->sp_exists($str))
  {
    $this->form_validation->set_message('sp_exists', 'The %s field does not exists');
    return FALSE;
  }
  else
  {
    return TRUE;
  }
}
于 2012-05-15T05:24:50.047 に答える
0

変化する

function sp_exists($str)
    {
        $this->user_model->sp_exists($str);
        $this->form_validation->set_message('sp_exists', 'The %s field does not exists');
    }

function sp_exists($str)
    {
        $this->form_validation->set_message('sp_exists', 'The %s field does not exists');
        return $this->user_model->sp_exists($str);
    }
于 2012-05-15T06:50:02.223 に答える