aak74/bitrix

此包已被 废弃 且不再维护。作者建议使用 aak74/bx-data 包。

用于方便访问 1C-Bitrix 数据的类

0.6.9 2020-05-08 14:37 UTC

README

Build Status Latest Stable Version Latest Unstable Version License

无论这是信息块还是 highload 块。

  • 您无需再记住信息块的 ID。
  • 您无需再编写大量代码来从 highload 块中获取基本数据。

使用

要获取汽车模型列表,只需编写

$models = new \App\Catalog\Model;
$result = $models->getList();

变量 $result 中包含模型数组。无需任何循环、GetNext、Fetch 等操作。

带有筛选、排序和字段限制的查询

$models = new \App\Catalog\Model;
$result = $models->getList([
    "select" => ["id", "name", "brandId", "brandName"],
    "filter" => ["brandId" => 120],
    "order" => ["name" => "asc"],
]);

在数据库中仅用一个查询

SELECT
    `model`.`ID` AS `ID`,
    `model`.`UF_NAME` AS `UF_NAME`,
    `model`.`UF_BRAND` AS `UF_BRAND`,
    `model_brandname_`.`UF_NAME` AS `brandName`
FROM `b_hlbd_auto_model` `model`
LEFT JOIN `b_hlbd_auto_brand` `model_brandname_` ON `model`.`UF_BRAND` = `model_brandname_`.`ID`
WHERE `model`.`UF_BRAND` = 120
AND (`model`.`UF_DELETED` IS NULL OR `model`.`UF_DELETED` = 0)
ORDER BY `model`.`UF_NAME` ASC

在数据库中仅用一个查询

$models = new \App\Catalog\Model;
$result = $models->getList([
    "select" => ["id", "name", "brandId", "brandName"],
    "filter" => ["brandName" => "renault"],
    "order" => ["name" => "asc"],
]);

您可能会说:Highload 块也能做到同样的事情。只是可能需要更多的代码。

SELECT 
    `model`.`ID` AS `ID`,
    `model`.`UF_NAME` AS `UF_NAME`,
    `model`.`UF_BRAND` AS `UF_BRAND`,
    `model_brandname_`.`UF_NAME` AS `brandName`
FROM `b_hlbd_auto_model` `model` 
LEFT JOIN `b_hlbd_auto_brand` `model_brandname_` ON `model`.`UF_BRAND` = `model_brandname_`.`ID`
WHERE UPPER(`model_brandname_`.`UF_NAME`) like upper('renault')
AND (`model`.`UF_DELETED` IS NULL OR `model`.`UF_DELETED` = 0)

是的,当然可以。但您可能会想起,在 highload 块的实体描述类中需要编写多少代码。这让人不太想这样做。比较一下现在需要编写的内容

这就是整个类的文本。 全部。其他所有事情都由您来完成。

namespace App\Catalog;

class Model extends \Akop\Element\HlElement
{
    protected $entityName = 'Model';
}

这就是整个类的文本。 全部。其他所有事情都由您来完成。

安装

安装方式遵循 composer 的标准方式

composer require aak74/bx-data

演示网站