2015-01-21 6 views
0

У меня есть форма, которая требует разных сценариев, основанных на выборе в форме. Например: пользователь может добавить адрес доставки в магазин, который отличается от биллингового адреса (это просто, на самом деле у меня будет 3 или 4 разных сценария).Как комбинировать сценарии в yii

Таким образом, при проверке формы, в зависимости от выбора пользователя, мне нужно объединить два сценария (один для платежного адреса и один для адреса доставки).

Как бы объединить два сценария?

ответ

1

Вы не можете группировать сценарии конфигурации правил. Вместо этого вы создаете список правил один за другим.

Вы можете применить несколько сценариев к набору полей.

Например:

public function rules() 
{ 

    return array(
     // For purchases, supply the delivery address 
     // For registration, supply the postal address 
     // For payment, supply the delivery address and postal address 

     array('delivery_address', 'required', 'on' => array('purchase', 'payment'), 
     array('postal_address', 'required', 'on' => array('register', 'payment'), 
       // : 

    ); 
} 

Вы не можете иметь 'условную' сценарии. Чтобы реализовать условные правила, посмотрите на реализацию пользовательских проверок.

public function rules() 
{ 
    return array(
     array('postal_address', 'validateAddresses'), 
    ); 
} 

public function validateAddresses($attribute,$params) { 
    if (!$this->deliveryAddressSameAsPostal) { 
     if ((empty($this->delivery_address)) { 
     $this->addError($attribute, 'Please supply a delivery address!'); 
     } 
    } 
} 
+0

Спасибо, кратер. Проблема в том, что адрес доставки нужен только тогда, когда пользователь указывает, что он отличается от почтового адреса. Поэтому я не могу создать сценарий для этого. Есть ли что-то вроде условного сценария? – Swissdude

+0

В вашем примере вы вводите в заблуждение сценарии и правила. Смотрите мои обновления. – crafter

 Смежные вопросы

  • Нет связанных вопросов^_^