如何使用Yii验证多个模型?

时间:2014-06-27 13:04:35

标签: php validation yii

我使用以下代码来保存和验证Booking和BookingRoom(链接表)模型,但我一次只能验证一个。我成功了,以下保存并填充了我的数据库,但验证按顺序进行。

$ Booking->保存();

$ BookingRoom->保存();

如何验证和保存多个模型?

2 个答案:

答案 0 :(得分:2)

您应该从模型中调用validate()方法,如下面的示例:

// populate input data to $a and $b
    $a->attributes=$_POST['A'];
    $b->attributes=$_POST['B'];

    // validate BOTH $a and $b
    $valid=$a->validate();
    $valid=$b->validate() && $valid;

    if($valid)
    {
        // use false parameter to disable validation
        $a->save(false);
        $b->save(false);
        // ...redirect to another page
    }

有关详细信息,请参阅此link

答案 1 :(得分:1)

$valid=$a->validate(); $valid=$b->validate() && $valid; -

的解释
    根据验证,
  1. $valid=$a->validate();将返回TRUEFALSE

    让我们说$valid=TRUE

  2. 现在执行$valid=$b->validate() && $valid;时,

    执行下一个模型的验证,并返回一些值(TRUE OR FALSE)

  3. 语句将显示为$valid = TRUE && TRUE;$valid = FALSE && TRUE;

  4. 现在,$validif($valid) { [...] }的价值为TRUEFALSE

    并且代码将相应执行。