我有一个模型,可以在 beforeSave 回调中检查很多内容。我不想为此目的使用 cakephp 验证系统,因为在这种情况下它对我来说更简单。
如果检查链在某个地方失败,我返回 false 并且没有保存发生,这是正常工作。我想在实体中返回非正式错误消息,以便在控制器和/或视图中使用它。
我怎样才能做到这一点?
示例:
public function beforeSave($event, $entity, $options)
{
if($entity->isNew())
{
if(fail1) $entity->inserterrormessage('XYZ is missing');
if(fail2) $entity->inserterrormessage('Please check if...');
}
}
我怎样才能做到这一点?
通过
errors()
方法,或从 CakePHP 3.4 开始使用 setError()
和 setErrors()
方法。
$entity->errors('propertyName', ['Message']);
$entity->setErrors(['propertyName' => ['Message']]);
$entity->setError('propertyName', ['Message']);
如果错误与实际实体属性无关,只需选择一个特殊名称,例如
_generic
。或者在基本实体或特征中创建自定义通用错误存储功能。
另请参阅