当前位置: 首页>>代码示例>>PHP>>正文


PHP ActiveRecordModel::getDataBySql方法代码示例

本文整理汇总了PHP中ActiveRecordModel::getDataBySql方法的典型用法代码示例。如果您正苦于以下问题:PHP ActiveRecordModel::getDataBySql方法的具体用法?PHP ActiveRecordModel::getDataBySql怎么用?PHP ActiveRecordModel::getDataBySql使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ActiveRecordModel的用法示例。


在下文中一共展示了ActiveRecordModel::getDataBySql方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: info

 public function info()
 {
     ClassLoader::importNow("application.helper.getDateFromString");
     $product = Product::getInstanceById($this->request->get('id'), ActiveRecord::LOAD_DATA, array('DefaultImage' => 'ProductImage', 'Manufacturer', 'Category'));
     $thisMonth = date('m');
     $lastMonth = date('Y-m', strtotime(date('m') . '/15 -1 month'));
     $periods = array('_last_1_h' => "-1 hours | now", '_last_3_h' => "-3 hours | now", '_last_6_h' => "-6 hours | now", '_last_12_h' => "-12 hours | now", '_last_24_h' => "-24 hours | now", '_last_3_d' => "-3 days | now", '_this_week' => "w:Monday | now", '_last_week' => "w:Monday ~ -1 week | w:Monday", '_this_month' => $thisMonth . "/1 | now", '_last_month' => $lastMonth . "-1 | " . $lastMonth . "/1", '_this_year' => "January 1 | now", '_last_year' => "January 1 last year | January 1", '_overall' => "now | now");
     $purchaseStats = array();
     $prevCount = 0;
     foreach ($periods as $key => $period) {
         list($from, $to) = explode(' | ', $period);
         $cond = new EqualsCond(new ARFieldHandle('OrderedItem', 'productID'), $product->getID());
         if ('now' != $from) {
             $cond->addAND(new EqualsOrMoreCond(new ARFieldHandle('CustomerOrder', 'dateCompleted'), getDateFromString($from)));
         }
         if ('now' != $to) {
             $cond->addAnd(new EqualsOrLessCond(new ARFieldHandle('CustomerOrder', 'dateCompleted'), getDateFromString($to)));
         }
         $f = new ARSelectFilter($cond);
         $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true));
         $f->removeFieldList();
         $f->addField('SUM(OrderedItem.count)');
         $query = new ARSelectQueryBuilder();
         $query->setFilter($f);
         $query->includeTable('OrderedItem');
         $query->joinTable('CustomerOrder', 'OrderedItem', 'ID', 'customerOrderID');
         if (($count = array_shift(array_shift(ActiveRecordModel::getDataBySql($query->getPreparedStatement(ActiveRecord::getDBConnection()))))) && ($count > $prevCount || '_overall' == $key)) {
             $purchaseStats[$key] = $count;
         }
         if ($count > $prevCount) {
             $prevCount = $count;
         }
     }
     $response = new ActionResponse();
     $response->set('together', $product->getProductsPurchasedTogether(10));
     $response->set('product', $product->toArray());
     $response->set('purchaseStats', $purchaseStats);
     return $response;
 }
开发者ID:saiber,项目名称:www,代码行数:39,代码来源:ProductController.php

示例2: updateStartAndEndDates

    public function updateStartAndEndDates(CustomerOrder $previousOrder, $recurringItems)
    {
        // calling this more than once for same record will end with catastrophe.
        // echo "\n--------------------------\n";
        foreach ($recurringItems as $recurringItem) {
            $recurringItemID = $recurringItem->getID();
            // anyone should work, because $recurringItems should be grouped by type and length. ID is required for getting period length in calendar days (done with sql).
            break;
            // echo $recurringItem->getID(), "\n";
        }
        // find end date (first order does not have endDate)
        //    add one day = start date,
        // find 2 end date periods
        //    new end date.
        $data = ActiveRecordModel::getDataBySql('SELECT
			TIMESTAMP(DATE( /*remove hh:mm:ss */
				ADDDATE(
					IF(TO_DAYS(co.endDate) IS NULL,' . self::sqlForEndDate('co.startDate') . ',
						co.endDate
					),
				INTERVAL 1 DAY)
			)) AS startDate,
			' . self::sqlForEndDate('co.startDate', 2) . ' as endDate
			FROM
				CustomerOrder co
				INNER JOIN RecurringItem ri ON ri.ID=' . $recurringItemID . '
			WHERE
				co.ID = ' . $previousOrder->getID());
        //
        if ($data && count($data) == 1) {
            $data = array_shift($data);
            $this->startDate->set($data['startDate']);
            $this->endDate->set($data['endDate']);
            return true;
        }
        return false;
    }
开发者ID:GregerA,项目名称:livecart,代码行数:37,代码来源:CustomerOrder.php


注:本文中的ActiveRecordModel::getDataBySql方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。