php - 在 Yii 中验证相关模型的属性

标签 php mysql yii

我在 Yii 中有四个模型。汽车、RaceCar、LuxuryCar 和司机。

RaceCar 有_一个司机

LuxuryCar 有_一个司机

RaceCar 和 LuxuryCar 都继承自同一模型 - Car - 使用相同的表继承。

LuxuryCar 和 RaceCar 中都有一个“fuel_level”属性,它改变了 Driver 中的验证规则(如果 RaceCar.fuel_level 为零,Driver 不应该将属性“action”设置为“driving”)。

而不是必须添加与 Driver 的所有可能的“属于”关系(我可能会添加更多继承的 Car 模型),然后检查 Driver 当前属于哪种 Car,以便我可以加载模型再次从数据库中,我希望能够验证父级(例如 RaceCar)中驾驶员属性的​​值。

这可能吗?如果是这样,如何?如果没有,是否有更好的方法来弥补我的不足?

最佳答案

一种解决方案是简单地为汽车的 driver 属性添加自定义(例如内联)验证规则:

public function rules() {
    return array('driver', 'validateDriver');
}

public function validateDriver() {
    if (!$this->driver->isFoo) {
        $this->addError('driver', Yii::t('validation', '{attribute} is not foo!'));
    }
}

关于php - 在 Yii 中验证相关模型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854779/

相关文章:

php - 日期问题()

php - 删除MySQL表中的重复行但存在外键关系?

Yii:捕获特定 Controller 的所有异常

Yii 模拟模型

PHP后期静态绑定(bind)作用域困惑

php - 在上一个版本中如何将 Jquery-File-Upload PHP 与数据库一起使用?

php - 加密会破坏 MySQL 查询吗?

php - 如何阻止 yii cgridview 在每个 ajax 更新调用中获取它的 jquery 文件

php - jQuery Ajax 发布到 php 没有捕获变量

mysql - MySQL 中的关联嵌套查询