cakephp - 如何在不使用cakephp3中的验证的情况下将错误消息注入(inject)实体?

标签 cakephp error-handling cakephp-3.x

我有一个模型,可以在 beforeSave 回调中检查很多内容。我不想为此目的使用 cakephp 验证系统,因为在这种情况下它对我来说更简单。

如果检查链在某个地方失败,我返回 false 并且没有保存发生,这是正常工作。我想在实体中返回非正式错误消息,以便在 Controller 和/或 View 中使用它。

我怎样才能做到这一点?

示例:

public function beforeSave($event, $entity, $options)
{
    if($entity->isNew())
    {
        if(fail1) $entity->inserterrormessage('XYZ is missing');
        if(fail2) $entity->inserterrormessage('Please check if...');
    }
}

最佳答案

How I can do that?

通过 errors() 方法,或者从 CakePHP 3.4 开始,使用 setError()setErrors() 方法。

$entity->errors('propertyName', ['Message']);
$entity->setErrors(['propertyName' => ['Message']]);
$entity->setError('propertyName', ['Message']);

如果错误与实际实体属性无关,只需选择一个特殊名称,例如 _generic。或者在基本实体或特征中创建自定义通用错误存储功能。

另请参阅

关于cakephp - 如何在不使用cakephp3中的验证的情况下将错误消息注入(inject)实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44043790/

相关文章:

cakephp - CakePHP 授权插件如何授权对索引的访问?

api - Magento Dropshipping - 如何自动化目录更新?

php - 如何使 Controller 在访问时提交预定数据?

php - cakephp3- where 子句中的未知列

authentication - Cakephp 3 身份验证插件,登录 URL 不匹配

python - 如何在 Python 应用程序中处理 HTTP 状态代码?

mysql - 调用非对象上的成员函数 create()

javascript - 如何在单个查询中更新多行数据?

jquery - 当我使用 .ajax 和 JSONP 时,如何处理失败的 JSON 请求?

kotlin - 当你在协程范围内抛出异常时,协程范围是否可重用?