xPDOObjectExistsValidationRule
Last updated Oct 17th, 2026 | Page history | Improve this page | Report an issue
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
$194 per month—let's make that $500!
Learn moreWhat Does the Rule Do?¶
This rule checks whether another object exists. If that object doesn’t exist, validation on the current object fails. The object is specified by the className and pk attributes in the rule schema definition.
[!NOTE]
pkis a fixed value written into the schema, not a reference to a field of the object being validated. The rule therefore always checks the same row, which is rarely what you want. To validate the current object’s field, use thexPDOForeignKeyConstraintrule instead.
Using the Rule¶
First, our model:
<model package="Test" baseClass="xPDO\Om\xPDOObject" platform="mysql"
defaultEngine="InnoDB" version="3.0">
<object class="myTest" table="test" extends="xPDO\Om\xPDOSimpleObject">
<field key="name" dbtype="varchar" precision="255"
phptype="string" default="" null="false" />
<validation>
<rule field="name"
name="chunkExists"
type="xPDOValidationRule"
rule="xPDOObjectExistsValidationRule"
pk="12"
className="MODX\Revolution\modChunk"
message="The Chunk does not exist, so this object cannot be saved."
/>
</validation>
</object>
</model>
Generate the model from the XML schema, then validate an object in a Snippet:
$output = '';
$modx->addPackage('Test', '/path/to/components/test/model/');
$obj = $modx->newObject('Test\myTest');
$validator = $obj->getValidator();
if (!$validator->validate()) {
foreach ($validator->getMessages() as $errorMsg) {
$output .= $errorMsg['message'];
}
}
return $output;
This will display:
The Chunk does not exist, so this object cannot be saved.
See Also¶
- xPDOForeignKeyConstraint
- xPDOMaxLengthValidationRule
- xPDOMaxValueValidationRule
- xPDOMinLengthValidationRule
- xPDOMinValueValidationRule
- xPDOObjectExistsValidationRule
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
$194 per month—let's make that $500!
Learn more










