xPDOMaxLengthValidationRule
Last updated Apr 12th, 2019 | 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
$301 per month—let's make that $500!
Learn moreWhat Does the Rule Do?¶
This rule verifies that a field has less than X number of chars, where X is defined by the "value" attribute in the XML schema.
Using the Rule¶
First, our model:
<model package="test" baseClass="xPDOObject" platform="mysql"
defaultEngine="MyISAM" tablePrefix="test_">
<object class="myTest" table="test" extends="xPDOSimpleObject">
<field key="name" dbtype="varchar" precision="255"
phptype="string" default="" null="false" />
<validation>
<rule field="name"
name="myMaxLenRule"
type="xPDOValidationRule"
rule="xPDOMaxLengthValidationRule"
value="10"
message="The name must be less than 10 characters."
/>
</validation>
</object>
</model>
From there, go ahead and generate the model from the XML schema. And now in a Snippet we'll call Test:
$output = '';
$modx->addPackage('test','/path/to/my/test/model/','test_');
$obj = $modx->newObject('myTest');
$obj->set('name','This is a really long string that will fail.');
$validator = $obj->getValidator();
if ($validator->validate() == false) {
$messages = $validator->getMessages();
foreach ($messages as $errorMsg) {
$output .= $errorMsg['message'];
}
}
This will display:
The name must be less than 10 characters.