У меня есть поля профиля, которые требуются, но не заданы на странице регистрации.
Как проверить, в теме folder\views\layout\tpl_navigation.php, если они завершили свой профиль, чтобы показать предупреждение (вы должны заполнить свой профиль, чтобы...), если они этого не сделали?
Решено, это было легко:
$profile = Yii::app()->getModule('user')->user()->profile;
$validate = $profile->validate();
if(!$validate)
echo '<div class="alert alert-error">Complete your profile...</div>';
Несмотря на то, что это неясно, как предложение сделать, как показано ниже:
Я предполагаю, что вы можете войти в идентификатор пользователя:
$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
}