Yii Framework: проверьте, заполнил ли пользователь обязательные поля профиля

0

У меня есть поля профиля, которые требуются, но не заданы на странице регистрации.

Как проверить, в теме folder\views\layout\tpl_navigation.php, если они завершили свой профиль, чтобы показать предупреждение (вы должны заполнить свой профиль, чтобы...), если они этого не сделали?

Теги:
yii

2 ответа

0
Лучший ответ

Решено, это было легко:

$profile = Yii::app()->getModule('user')->user()->profile;
$validate =  $profile->validate();

if(!$validate) 
    echo '<div class="alert alert-error">Complete your profile...</div>';
0

Несмотря на то, что это неясно, как предложение сделать, как показано ниже:

Я предполагаю, что вы можете войти в идентификатор пользователя:

$uid=Yii::app()->user->id;

А также пользовательская модель называется User

Затем в вашем контроллере:

public function beforeAction($action) {
    //getting user id
    $uid=Yii::app()->user->id;
    //finding user 
    $user=User::model()->findByPk($uid);
    //checking if address or mobile is empty
    if(empty($user->address) || empty($user->mobile)){//and othe fields
        Yii::app()->user->setFlash('PROFILE_IS_NOT_COMPLETED',TRUE);
    }
    parent::beforeAction($action);
}

Затем в вашем шаблоне:

if (Yii::app()->user->hasFlash('PROFILE_IS_NOT_COMPLETED') && Yii::app()->user->getFlash('PROFILE_IS_NOT_COMPLETED',FALSE)===TRUE) {
        echo CHtml::tag('span', array('style' => 'color:red'), "Please complete your profile"); //Just an example!
        //you absolutely need customization here
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню