试图通过制作可重用的函数来减少代码点火器中的代码

时间:2014-01-20 16:11:34

标签: php mysql codeigniter

在我的主控制器中,我有一堆函数可以访问同一组代码。我一直试图通过制作一个可重用的函数来减少控制器的大小,该函数抓取我需要的数据然后将其传递给其他函数调用的函数。 _getSales()函数将在同一控制器中的大约30个函数中使用。基本上不是将这些行添加到每个函数中。当我完成时,我可能会在该私有函数中添加大约5个其他变量。现在,视图中的销售变量显示为空。

现有控制器

function _getSales() {
    $sales = $this -> sale_model -> getSalesById();
    $data['sales'] = $sales;
}

function home() {
    $this -> _getSales();
    $data['pageName'] = 'home';
    $this -> load -> view($currentPage, $data);
}

1 个答案:

答案 0 :(得分:3)

您的home()函数无法访问_getSales()函数中的data['sales']变量。所以试试

function _getSales() {
    $sales = $this -> sale_model -> getSalesById();
    return $sales;
}

function home() {
    $data['sales'] = $this -> _getSales();
    $data['pageName'] = 'home';
    $this -> load -> view($currentPage, $data);
}

此外,模型函数看起来像是通过id获取销售额,而且您似乎没有向其传递任何参数