isDirty
Последнее обновление Aug 15th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn morexPDOObject::isDirty()¶
Показывает, изменено ли поле объекта (или объект ещё ни разу не сохраняли). Имя поля обязательно. Перегрузки «грязный ли весь объект» нет.
Синтаксис¶
API Docs: https://api.modx.com/revolution/2.2/db_core_xpdo_om_xpdoobject.class.html#\xPDOObject::isDirty()
boolean isDirty (string $key)
-
$key— имя поля (обязательный аргумент).
Возвращает true, если поле существует и либо есть в карте dirty-полей, либо объект новый (isNew()). Возвращает false, если поле существует и не менялось у уже сохранённого объекта. Неизвестное имя поля даёт false и ошибку в журнале xPDO.
Пример¶
Проверка одного поля у объекта Skrewt:
$skrewt = $xpdo->getObject('Skrewt', 1);
echo $skrewt->isDirty('poisonous') ? 1 : 0; // выведет 0
$skrewt->set('poisonous', false);
echo $skrewt->isDirty('poisonous') ? 1 : 0; // выведет 1
Есть ли хотя бы одно dirty-поле¶
Вызова isDirty() без $key нет. Чтобы узнать, есть ли у объекта незаписанные изменения полей, смотрите публичную карту $_dirty:
if (!empty($skrewt->_dirty)) {
echo 'У Skrewt есть dirty-поля.';
} else {
echo 'У Skrewt нет dirty-полей.';
}
print_r($skrewt->_dirty);
В $_dirty лежат ключи изменённых полей. После save() карта очищается. У нового объекта isDirty($key) вернёт true для любого известного поля ещё до set(), пока isNew() остаётся истинным.
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










