2015-08-03 3 views
0

Кто-нибудь знает, как добавить символ * для формирования поля в определенном состоянии в Yii. У меня есть поле телефона, который присутствует только тогда, когда местоположение пользователя india.so пользователя с адресом Индия вошедшей в поле Номер телефона должен быть показан с символом *Обязательный символ * на основе условия

array('phone','required','on'=>'create'), 

Но мое текстовое поле отображается только тогда, когда местоположение india.ie,

<?php 

if ($result->location=="india) { 
echo $form->textAreaRow($model, 'phone', array('class' => 'span7', 'rows' => 4,)); 

} 
?> 
+0

Вы пробовали что-нибудь? –

+0

Я сделал сценарий, т. Е. Массив ('phone', 'required', on => 'create'). Но моя проблема заключается в том, что полевой телефон не будет отображаться всегда. Он будет активен только в том случае, если местоположение - india – Anju

+0

Add код на вопрос. Бот в комментариях. –

ответ

0

Вам нужно создать пользовательские правила проверки, может быть что-то вроде этого:

private $_country; 

public function rules() 
{ 
    return array(
     array('other_field, one_more_field', 'required'), 
     array('phone', 'safe'), 
     array('phone', 'requiredInIndia'), 
    ); 
} 

public function requiredInIndia($attribute, $params) 
{ 
    if(!empty($this->phone)) 
    {  
     if($this->country === 'IND') 
     { 
      $this->addError($attribute, 'Dude ! we need your phone number !'); 
     } 
    } 
} 

public function setCountry() 
{ 
    // maybe from user ip address if you don't want to relate it to other attribute 
    $user_ip = CHttpRequest::getUserHostAddress(); 
    $this->_country = some_fonction_to_get_country_iso_from_ip($user_ip); 
} 

public function getCountry() 
{ 
    return $this->_country; 
} 

Затем использовать $your_model->country значение для печати вручную символ * на ваш взгляд, если он удовлетворит поиск стран.

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