如何使用_remap将参数传递给Codeigniter中的控制器

时间:2020-03-22 12:11:11

标签: jquery ajax codeigniter

我正在尝试找出如何使用Codeigniter中的_remap将参数传递给控制器​​。

我需要将数字参数传递给控制器​​中的索引方法,因此我向控制器添加了以下重新映射函数:

function _remap($method, $params = array())
{
    if (method_exists($this, $method))
    {

        return call_user_func_array(array($this,$method), $params);

    }
    else
    {
        $this->index($method);
    }
}

所以我成功使用以下方法将参数传递给索引方法:

public function index($param = NULL)
{
    $this->data['parameter'] = $param;

}

控制器中的其他方法会引起问题,例如:

 public function get_record($tid = NULL)
{

    if($model = $this->model->get_data($tid))
    {

        $data['status'] = TRUE;
        $data['error'] = FALSE;
    }
    else
    {
        $data['status'] = FALSE;
        $data['error'] = TRUE;
        $data['toastmsg'] = 'Model not found.';   
    }
    echo (json_encode($data));
}

因为参数为空所以不返回值...所以我尝试使用以下修改的代码,请注意数组以传递参数:

public function get_record($param = NULL)
{
    $tid = $param[0]
    if($model = $this->model->get_data($tid))
    {

        $data['status'] = TRUE;
        $data['error'] = FALSE;
    }
    else
    {
        $data['status'] = FALSE;
        $data['error'] = TRUE;
        $data['toastmsg'] = 'Model not found.';   
    }
    echo (json_encode($data));
}

在上面的代码有效的情况下...但是又出现另一个问题...如果参数只是一个数字..没问题(1 ...或2 ...或3 ...依此类推直到9),但没有通过大于9的数字...突出第一个数字。因此,例如...参数234的传递就像2一样。

希望我已经解释了这个问题,对不起,英语不好,非常感谢您提供的提示和帮助。

0 个答案:

没有答案
相关问题