Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一个类中的两个方法的作用非常接近_Php - Fatal编程技术网

Php 一个类中的两个方法的作用非常接近

Php 一个类中的两个方法的作用非常接近,php,Php,我有一个类,它有两个相互密切相关的方法。我不想传递旗帜,所以我把它们分开。我想知道是否有办法重写它,这样我就不必如此仔细地重复了 class Test extends Controller { public static function nonFormattedData($param) { $arr = array(); if (is_array($param)) { $

我有一个类,它有两个相互密切相关的方法。我不想传递旗帜,所以我把它们分开。我想知道是否有办法重写它,这样我就不必如此仔细地重复了

  class Test extends Controller
    {
        public static function nonFormattedData($param)
        {
            $arr = array();
            if (is_array($param)) {
                $i = 0;
                $sql = "
                    select *
                    from table1
                    where
                    ";


                if (isset($param['startDate'])) {
                    $sql .= "   date_created between ? AND  ?";
                    $arr[] = $param['startDate'];
                    $arr[] = $param['endDate'];
                    $i++;
                }
                if (isset($param['amount']) && !empty($param['amount'])) {

                    if ($i > 0) $sql .= " AND ";
                    $sql .= " balance= ?";
                    $arr[] = $param['amount'];
                    $i++;
                }
                if (isset($param) && !empty($param['amount'])) {

                    if ($i > 0) $sql .= " AND ";
                    $sql .= " balance= ?";
                    $arr[] = $param['amount'];
                    $i++;
                }
                if (isset($param['createdBy']) && !empty($param['createdBy'])) {

                    if ($i > 0) $sql .= " AND ";
                    $sql .= " column2 like '%Created By: " . $param['createdBy'] . "%'";
                }
                $sql .= ' group by id.table1 ';
                $rs = Query::RunQuery($sql, $arr);
                foreach ($rs as $row) {
                    $records = new Account();
                    $results[] = $records;
                }
                return $results;
            }
        }




        public static function formattedData($serArray, $orderBy = "giftcardaccount_id desc", $offset = 0, $limit = 10)
        {
                $arr = array();
            if (is_array($param)) {
                $i = 0;
                $sql = "
                    select *
                    from table1
                    where
                    ";


                if (isset($param['startDate'])) {
                    $sql .= "   date_created between ? AND  ?";
                    $arr[] = $param['startDate'];
                    $arr[] = $param['endDate'];
                    $i++;
                }
                if (isset($param['amount']) && !empty($param['amount'])) {

                    if ($i > 0) $sql .= " AND ";
                    $sql .= " balance= ?";
                    $arr[] = $param['amount'];
                    $i++;
                }
                if (isset($param) && !empty($param['amount'])) {

                    if ($i > 0) $sql .= " AND ";
                    $sql .= " balance= ?";
                    $arr[] = $param['amount'];
                    $i++;
                }
                if (isset($param['createdBy']) && !empty($param['createdBy'])) {

                    if ($i > 0) $sql .= " AND ";
                    $sql .= " column2 like '%Created By: " . $param['createdBy'] . "%'";
                }
                $sql .= ' group by id.table1 ';
                $rs = Query::RunQuery($sql, $arr);

                return array("data" => $rs);
            }
        }


    }

为什么没有一个方法,但有一个可选的格式化选项对象/数组

public static function getData($params, $formatting = null) {
    // continue as normal, adding formatting if it's there
}

您是在寻找一个带有cake组件的解决方案,还是为什么要将其标记为cakephp?不是,但它是用cakephpIn formattedData()构建的。您使用局部变量$param,但不将其传递到方法中。我是遗漏了什么还是输入错误?这段代码看起来根本不像cakephp。直截了当的SQL和Query::RunQuery()是非常“不简单”的做事方式。这不是用CakePHP构建的。CakePHP中不存在
查询
类,如果是CakePHP,
类测试扩展控制器
将是
类测试控制器扩展AppController
。所以,除非您在CakePHP旁边构建完全定制的东西,并且同时忽略CakePHP。。。这与CakePHP无关。