173  /  382
Справочник

Короткие вызовы

Просмотров: 45877
Дата последнего изменения: 27.10.2020
Татьяна Старкова
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

В дополнении к GetList существует еще ряд методов, которые позволяют в более короткой форме получить определенные данные:

  • getById($id) - производит выборку по первичному ключу;
  • getByPrimary($primary, array $parameters) - выборка по первичному ключу с возможностью указания дополнительных параметров;

    Примечание: в обоих методах мы можем как передать id в виде числа, так и явно указать какой элемент является ключом, передав массив. Массив необходимо использовать, если у вас есть несколько primary полей. Если вы передаете в массиве элемент, который не является первичным ключом, то это будет ошибкой.

    BookTable::getById(1);
    BookTable::getByPrimary(array('ID' => 1));
    
    // такие вызовы будут аналогичны следующему вызову getList:
    BookTable::getList(array(
    	'filter' => array('=ID' => 1)
    ));
  • getRowById($id) - производит выборку по первичному ключу, но возвращается массив данных;
    $row = BookTable::getRowById($id);
    
    // аналогичный результат можно получить так:
    $result = BookTable::getById($id);
    $row = $result->fetch();
    
    // или так
    $result = BookTable::getList(array(
    	'filter' => array('=ID' => $id)
    ));
    
    $row = $result->fetch();
  • getRow(array $parameters) - производит выборку не по первичному ключу, а по каким-то другим параметрам. При этом возвращается только одна запись.
    $row = BookTable::getRow(array(
    	'filter' => array('%=TITLE' => 'Patterns%'),
    	'order' => array('ID')
    ));
    
    // аналогичный результат можно получить так:
    $result = BookTable::getList(array(
    	'filter' => array('%=TITLE' => 'Patterns%'),
    	'order' => array('ID')
    	'limit' => 1
    ));
    
    $row = $result->fetch();

45
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии