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

Проверки (isFilled, isChanged, has)

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

    Чтобы проверить, содержит ли объект актуальное значение из базы данных, используется метод isFilled:

    use \Bitrix\Main\Test\Typography\Book;
    
    // актуальными считаются значения из методов fetch* и wakeUp
    // в примере при инициализации объекта передается только первичный ключ
    $book = Book::wakeUp(1);
    
    var_dump($book->isTitleFilled());
    // false
    
    $book->fillTitle();
    
    var_dump($book->isTitleFilled());
    // true
  • isChanged

    Метод isChanged отвечает на вопрос, было ли установлено новое значение в течение сеанса:

    use \Bitrix\Main\Test\Typography\Book;
    
    // объект может иметь исходное значение, а может и не иметь
    // это не повлияет на дальнешее поведение
    $book = Book::wakeUp(['ID' => 1, 'TITLE' => 'Title 1']);
    
    var_dump($book->isTitleChanged());
    // false
    
    $book->setTitle('New title 1');
    
    var_dump($book->isTitleChanged());
    // true

    Такое поведение справедливо и для новых объектов, пока их значения не сохранены в базу данных.

  • has

    Метод has проверяет, есть ли в объекте хоть какое-то значение поля - актуальное из БД или установленное в течение сеанса. По сути, это сокращение от isFilled() || isChanged():

    use \Bitrix\Main\Test\Typography\Book;
    
    $book = Book::wakeUp(['ID' => 1, 'TITLE' => 'Title 1']);
    $book->setIsArchived(true);
    
    var_dump($book->hasTitle());
    // true
    
    var_dump($book->hasIsArchived());
    // true
    
    var_dump($book->hasIsbn());
    // false


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

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