如何使用yii1.1验证模型中的一个或另一个字段?

u3r8eeie  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(173)

在一个yii@1.1项目中,我有一个包含event_id字段的模型,其规则如下:

  1. public function rules(): array
  2. {
  3. return [
  4. ['event_id', 'required'],
  5. ['event_id', 'numerical', 'integerOnly' => true],
  6. ];
  7. }

现在,我想扩展该表,以便也有一个video_id
我不确定如何检查event_idvideo_id。是否可以通过rules方法进行检查,或者是否需要添加一些自定义验证?
我不想让这两个字段都是可选的,因为应该设置其中一个字段,而不是两个字段。

8wtpewkr

8wtpewkr1#

您可以使用when

  1. ['event_id', 'required', 'when' => function($model) {
  2. return $model->video_id === null;
  3. }],
  4. ['video_id', 'required', 'when' => function($model) {
  5. return $model->event_id === null;
  6. }]

看起来它只存在于2.X中...而不是在1.X中,您可以使用此扩展名https://www.yiiframework.com/extension/yii-conditional-validator

相关问题