當前位置: 首頁>>代碼示例>>PHP>>正文


PHP PropertyTable::query方法代碼示例

本文整理匯總了PHP中Bitrix\Iblock\PropertyTable::query方法的典型用法代碼示例。如果您正苦於以下問題:PHP PropertyTable::query方法的具體用法?PHP PropertyTable::query怎麽用?PHP PropertyTable::query使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Bitrix\Iblock\PropertyTable的用法示例。


在下文中一共展示了PropertyTable::query方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: properties

 public static function properties($primary)
 {
     if (!$primary) {
         throw new ArgumentException('Не указан идентификатор инфоблока');
     }
     $cache = new \CPHPCache();
     $path = self::createPath(__METHOD__);
     $cacheId = md5($primary);
     if ($cache->InitCache(86400, $cacheId, $path)) {
         $props = $cache->GetVars();
     } else {
         $field = is_numeric($primary) ? 'IBLOCK_ID' : 'IBLOCK.CODE';
         $db = PropertyTable::query()->addFilter($field, $primary)->addSelect('*')->exec();
         $props = array();
         while ($prop = $db->fetch()) {
             $code = $prop['CODE'];
             if (isset($props[$code])) {
                 throw new \LogicException("В инфоблокe {$primary} свойство {$code} используется дважды");
             }
             if (strlen($code) === 0) {
                 throw new \LogicException("В инфоблоке {$primary} для свойства {$prop['NAME']} не задан символьный код");
             }
             $props[$code] = $prop;
         }
         if ($cache->StartDataCache()) {
             $cache->EndDataCache($props);
         }
     }
     return $props;
 }
開發者ID:maximaster,項目名稱:tools.orm,代碼行數:30,代碼來源:IblockStructure.php

示例2: getItemsIblockShard

 /**
  * @see IblockFinder::getItems()
  *
  * @return array
  *
  * @throws ValueNotFoundException
  * @throws ArgumentException
  */
 protected function getItemsIblockShard()
 {
     $items = [];
     $rsIblocks = IblockTable::query()->setFilter(['ID' => $this->id])->setSelect(['IBLOCK_TYPE_ID', 'CODE'])->exec();
     if ($iblock = $rsIblocks->fetch()) {
         if ($iblock['CODE']) {
             $items['CODE'] = $iblock['CODE'];
         }
         $items['TYPE'] = $iblock['IBLOCK_TYPE_ID'];
     }
     if (empty($items)) {
         throw new ValueNotFoundException('Iblock', 'ID #' . $this->id);
     }
     $propIds = [];
     $rsProps = PropertyTable::query()->setFilter(['IBLOCK_ID' => $this->id])->setSelect(['ID', 'CODE', 'IBLOCK_ID'])->exec();
     while ($prop = $rsProps->fetch()) {
         $propIds[] = $prop['ID'];
         $items['PROPS_ID'][$prop['CODE']] = $prop['ID'];
     }
     if (!empty($propIds)) {
         $rsPropsEnum = PropertyEnumerationTable::query()->setFilter(['PROPERTY_ID' => $propIds])->setSelect(['ID', 'XML_ID', 'PROPERTY_ID', 'PROPERTY_CODE' => 'PROPERTY.CODE'])->exec();
         while ($propEnum = $rsPropsEnum->fetch()) {
             if ($propEnum['PROPERTY_CODE']) {
                 $items['PROPS_ENUM_ID'][$propEnum['PROPERTY_CODE']][$propEnum['XML_ID']] = $propEnum['ID'];
             }
         }
     }
     $this->registerCacheTag('bex_iblock_' . $this->id);
     return $items;
 }
開發者ID:bitrix-expert,項目名稱:tools,代碼行數:38,代碼來源:IblockFinder.php


注:本文中的Bitrix\Iblock\PropertyTable::query方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。