Личный кабинет
Личный кабинет
Всем привет!
Создал личный кабинет, вот какое получилось действие -
public function actionView($id)
{
$model = $this->loadModel($id);
$intworks = Interestworks::model()->findByPk($id);
$opitworks = Opitrabity::model()->findByPk($id);
$vndannie = Vndannie::model()->findByPk($id);
$parametri_i_razmery = ParametriIRazmery::model()->findByPk($id);
$interesi = Interesi::model()->findByPk($id);
$osobie_naviki = OsobieNaviki::model()->findByPk($id);
$gorod = Gorod::model()->findByPk($id);
$udobnoe_vrema = UdobnoeVrema::model()->findByPk($id);
$osebe = Osebe::model()->findByPk($id);
$this->render('view',array(
'model'=>$model, 'intworks'=> $intworks, 'opitworks'=> $opitworks, 'vndannie' => $vndannie, 'parametri_i_razmery' => $parametri_i_razmery,
'interesi' => $interesi, 'osobie_naviki' => $osobie_naviki, 'gorod' => $gorod, 'udobnoe_vrema' => $udobnoe_vrema, 'osebe' => $osebe,
));
}
То есть идет обращение ко многим моделям и соответственно столько же таблиц, если например будет высоко-нагруженный проект, как это скажется? Надо было все поместить в одну таблицу?
Если так то тогда получится вот сколько данных в таблице - http://ssmaker.ru/76471413/, http://ssmaker.ru/59b7c0e9/
Или наоборот я все правильно сделал, т.к. при редактировании будет обращение к одной таблице, более маленькой?
Но с другой при входе или просмотре личных кабинетов ко многим!
Создал личный кабинет, вот какое получилось действие -
public function actionView($id)
{
$model = $this->loadModel($id);
$intworks = Interestworks::model()->findByPk($id);
$opitworks = Opitrabity::model()->findByPk($id);
$vndannie = Vndannie::model()->findByPk($id);
$parametri_i_razmery = ParametriIRazmery::model()->findByPk($id);
$interesi = Interesi::model()->findByPk($id);
$osobie_naviki = OsobieNaviki::model()->findByPk($id);
$gorod = Gorod::model()->findByPk($id);
$udobnoe_vrema = UdobnoeVrema::model()->findByPk($id);
$osebe = Osebe::model()->findByPk($id);
$this->render('view',array(
'model'=>$model, 'intworks'=> $intworks, 'opitworks'=> $opitworks, 'vndannie' => $vndannie, 'parametri_i_razmery' => $parametri_i_razmery,
'interesi' => $interesi, 'osobie_naviki' => $osobie_naviki, 'gorod' => $gorod, 'udobnoe_vrema' => $udobnoe_vrema, 'osebe' => $osebe,
));
}
То есть идет обращение ко многим моделям и соответственно столько же таблиц, если например будет высоко-нагруженный проект, как это скажется? Надо было все поместить в одну таблицу?
Если так то тогда получится вот сколько данных в таблице - http://ssmaker.ru/76471413/, http://ssmaker.ru/59b7c0e9/
Или наоборот я все правильно сделал, т.к. при редактировании будет обращение к одной таблице, более маленькой?
Но с другой при входе или просмотре личных кабинетов ко многим!
Re: Личный кабинет
у вас один и тот же id у всех??
Re: Личный кабинет
Во 1. Есть кнопка "Code", которая прекрасно стилизует код.
Мои рекомендации:
Во 2. Определяйте основную таблицу (например users, куда записываются логин и пароль) и делайте от нее relation к другим.... связывая их через user_id = id (в основной таблице: users). Получится что-то вроде:
Таким образом, подгружать модели в контроллере можно будет так:
В 3. Сократить количество Ваших таблиц... это очень желательно
Например если у Вас поля в таблицах intworks и opitworks одинаковые, их можно соединить в одну, например works и просто добавить параметр in_opit (boolean), который будет разделять к какой категории относится работа.
Создать таблицу профиль: в которую писать данные о себе, навыки (засовывать данные после serialize в одну ячейку), данные о городе и удобном времени... таким образом, код станет красивее, да и количество таблицу сократится..
P.S. Это лично мое мнение)
Мои рекомендации:
Во 2. Определяйте основную таблицу (например users, куда записываются логин и пароль) и делайте от нее relation к другим.... связывая их через user_id = id (в основной таблице: users). Получится что-то вроде:
Код: Выделить всё
public function relations()
{
return array(
'osebe ' => array(self::HAS_ONE, 'UserProfile', 'user_id'),
'udobnoe_vrema' => array(self::HAS_MANY, 'UserTime', 'user_id'),
'gorod ' => array(self::HAS_MANY, 'UserCity', 'user_id'),
'osobie_naviki' => array(self::HAS_MANY, 'UserNavik', 'user_id'),
);
}
Код: Выделить всё
$user = Yii::app()->user->getModel();
$profile = $user->profile;
$city = $user->city;
Например если у Вас поля в таблицах intworks и opitworks одинаковые, их можно соединить в одну, например works и просто добавить параметр in_opit (boolean), который будет разделять к какой категории относится работа.
Создать таблицу профиль: в которую писать данные о себе, навыки (засовывать данные после serialize в одну ячейку), данные о городе и удобном времени... таким образом, код станет красивее, да и количество таблицу сократится..
P.S. Это лично мое мнение)
Re: Личный кабинет
Ой...
Re: Личный кабинет
Vse tak ploho?) Konstruktiv!!!!
Re: Личный кабинет
anton44eg, да, при регистрации создаются данные в таблицах с одними и теми же 'id' для данного пользователя
Re: Личный кабинет
stop4uk, спасибо, буду сокращать, вчера начал писать, сегодня закончил и только недавно задумался, и то случайно, а правильно ли я сделал, теперь придется переделывать)
Re: Личный кабинет
не проще ли тогда использовать реляционность?
Re: Личный кабинет
через serialize вывод по моему не получится - http://SSMaker.ru/8e006461/, я в общем-то впервые слышу об этом,
а вот in_opit (boolean) это да, идея, еще поле создать с привязкой к пользователю, да и так же не по id привязку нужно делать, а через HAS_MANY(его не использовал, как я понимаю BELONGS_TO тут тоже пойдет), иначе потом могут проблемы начаться, если что-нибудь например в бд удалить, id не тот и все полетит, спасибо, ошибки понял!
а вот in_opit (boolean) это да, идея, еще поле создать с привязкой к пользователю, да и так же не по id привязку нужно делать, а через HAS_MANY(его не использовал, как я понимаю BELONGS_TO тут тоже пойдет), иначе потом могут проблемы начаться, если что-нибудь например в бд удалить, id не тот и все полетит, спасибо, ошибки понял!
Re: Личный кабинет
да, сначала даже не подумал, действительно проще и правильнее
Re: Личный кабинет
anton44eg, я пол часа обдумывал, ответ писал, даже не видел Ваше сообщение, действительно проще, хорошо что все таки спросил на форуме
Re: Личный кабинет
Код: Выделить всё
public function relations()
{
return array(
'intworks' => array(self::HAS_ONE, 'Interestworks', 'user_id'),
'opitworks' => array(self::HAS_ONE, 'Opitrabity', 'user_id'),
'vndannie' => array(self::HAS_ONE, 'Vndannie', 'user_id'),
'parametri_i_razmery' => array(self::HAS_ONE, 'ParametriIRazmery', 'user_id'),
'interesi' => array(self::HAS_ONE, 'Interesi', 'user_id'),
'osobie_naviki' => array(self::HAS_ONE, 'OsobieNaviki', 'user_id'),
'gorod' => array(self::HAS_ONE, 'Gorod', 'user_id'),
'udobnoe_vrema' => array(self::HAS_ONE, 'UdobnoeVrema', 'user_id'),
'osebe' => array(self::HAS_ONE, 'Osebe', 'user_id'),
);
}
Код: Выделить всё
public function actionView($id)
{
$user = $this->loadModel($id);
$intworks = $user->intworks;
$opitworks = $user->opitworks;
$vndannie = $user->vndannie;
$parametri_i_razmery = $user->parametri_i_razmery;
$interesi = $user->interesi;
$osobie_naviki = $user->osobie_naviki;
$gorod = $user->gorod;
$udobnoe_vrema = $user->udobnoe_vrema;
$osebe = $user->osebe;
$this->render('view',array(
'model'=>$user, 'intworks'=> $intworks, 'opitworks'=> $opitworks, 'vndannie' => $vndannie, 'parametri_i_razmery' => $parametri_i_razmery,
'interesi' => $interesi, 'osobie_naviki' => $osobie_naviki, 'gorod' => $gorod, 'udobnoe_vrema' => $udobnoe_vrema, 'osebe' => $osebe,
));
}
Код: Выделить всё
public function actionRegistration()
{
$model=new User;
$model->scenario = 'registration';
$model1 = new Interestworks;
$model2 = new Opitrabity;
$model3 = new Vndannie;
$model4 = new ParametriIRazmery;
$model5 = new Interesi;
$model6 = new OsobieNaviki;
$model7 = new Gorod;
$model8 = new UdobnoeVrema;
$model9 = new Osebe;
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$setting = Setting::model()->findByPk(1);
if($setting->defaultStatusUser == 1){
$model->ban = 1;
}
else{
$model->ban = 0;
}
if($model->save()){
$model1->user_id = $model->id;
$model2->user_id = $model->id;
$model3->user_id = $model->id;
$model4->user_id = $model->id;
$model5->user_id = $model->id;
$model6->user_id = $model->id;
$model7->user_id = $model->id;
$model8->user_id = $model->id;
$model9->user_id = $model->id;
$model1->save();
$model2->save();
$model3->save();
$model4->save();
$model5->save();
$model6->save();
$model7->save();
$model8->save();
$model9->save();
if($setting->defaultStatusUser == 1){
Yii::app()->user->setFlash('registration','Вы можете авторизоваться.');
}
else{
Yii::app()->user->setFlash('registration','Ожидайте подтверждения админа.');
}
}
}
$this->render('registration',array(
'model'=>$model,
));
}
- sluchainiyznak
- Сообщения: 617
- Зарегистрирован: 2013.05.19, 17:51
- Откуда: ХМАО-Югра, г. Сургут
- Контактная информация:
Re: Личный кабинет
1. Не знаю на чем основан ваш код
но не проще ли передать в представление только основную модель?
а то какое то масло масляное получается
2. По экшну регистрации, дык там вообще взрыв мозга (вы видимо этот проект делаете исключительно для себя).
з.ы.: вы надеюсь внимательно читали руководство по фреймворку
Код: Выделить всё
$user = $this->loadModel($id);
....
$this->render('view',array(
'model'=>$user, 'intworks'=> $intworks, 'opitworks'=> $opitworks, 'vndannie' => $vndannie, 'parametri_i_razmery' => $parametri_i_razmery,
'interesi' => $interesi, 'osobie_naviki' => $osobie_naviki, 'gorod' => $gorod, 'udobnoe_vrema' => $udobnoe_vrema, 'osebe' => $osebe,
));
Код: Выделить всё
$user = $this->loadModel($id);
$this->render('view',array('model'=>$user));
2. По экшну регистрации, дык там вообще взрыв мозга (вы видимо этот проект делаете исключительно для себя).
з.ы.: вы надеюсь внимательно читали руководство по фреймворку
Re: Личный кабинет
Спасибо, действительно проще, реляционности раньше не было, все были самостоятельными, теперь приблизительно так в виде -
Регистрацию уменьшу, по мере уменьшения таблиц.
Руководство, да читал, вроде внимательно, просто чуть меньше двух месяцев назад начал изучать Yii, потом на CodeIgniter сделал 2 сайта на заказ, потом вообще ничего не делал и так как-то месяц без Yii прошел, вот опять взялся, решил личный кабинет сделать.
Да это для себя.
Код: Выделить всё
<?php if($model->osebe['text']==null&&Yii::app()->user->id == $model->osebe['id']){ ?>
<a class="poplight" rel="popup_contact10" href="#?w=365">Рассказать подробнее о себе</a>
<?php } else{ ?>
<span>
<?php echo $model->osebe['text']; ?>
</span>
<?php } ?>
Руководство, да читал, вроде внимательно, просто чуть меньше двух месяцев назад начал изучать Yii, потом на CodeIgniter сделал 2 сайта на заказ, потом вообще ничего не делал и так как-то месяц без Yii прошел, вот опять взялся, решил личный кабинет сделать.
Да это для себя.
Re: Личный кабинет
Точнее теперь вот так:
Код: Выделить всё
<?php if($model->osebe['text']==null&&Yii::app()->user->id == $model->osebe['user_id']){ ?>
- sluchainiyznak
- Сообщения: 617
- Зарегистрирован: 2013.05.19, 17:51
- Откуда: ХМАО-Югра, г. Сургут
- Контактная информация:
Re: Личный кабинет
вы наверное не в курсе, но получить доступ к атрибутам модели можно и так : $model->osebe->text или $model->osebe->user_id
p.s.: читаем руководство!
p.s.: читаем руководство!
Re: Личный кабинет
в курсе, просто по привычке пишу
Re: Личный кабинет
мне так удобнее, привычнее, на CodeIgniter так привык писать, там только так и можно
Re: Личный кабинет
А не проще все таки данные о навыках засовывать в одну ячейку через разделитель? вряд ли вы будете в зависимости от навыка накидывать какие-либо параметры пользователю...
Почему нельзя провести сериализацию данных, собранных из массива значений, который был получен в зависимости от протыканных галочек и сунуть все это в одну ячейку?
P.S. Хорошо, допустим не надо Вам сериализацию делать, не хотите вы... так обработайте массив галочек foreach (или как Вам удобнее и проще), получите переменные + вставьте разделитель между ними и суньте в БД. Далее, при выводе, поднимите эту запись из БД, пропустите ее через explode и выведите список...
P.p.S. Ваш код actionRegistration(), который содержит в себе
не проще засунуть в каждую модель, кроме users функцию определения id юзверя? что-то вроде
а в контроллер
Откуда взят код $model->ban = 1; (по умолчанию пользователь забанен что ли? тогда уж не забанен, а неактивен...)
Валидация полей до сохранения в бд совсем ненужна?
Да и сократите вы эти скобки, нафиг они? У вас после if по одному действию, можно и без скобок)
Почему нельзя провести сериализацию данных, собранных из массива значений, который был получен в зависимости от протыканных галочек и сунуть все это в одну ячейку?
P.S. Хорошо, допустим не надо Вам сериализацию делать, не хотите вы... так обработайте массив галочек foreach (или как Вам удобнее и проще), получите переменные + вставьте разделитель между ними и суньте в БД. Далее, при выводе, поднимите эту запись из БД, пропустите ее через explode и выведите список...
P.p.S. Ваш код actionRegistration(), который содержит в себе
Код: Выделить всё
$model9->user_id = $model->id; // и т.д. и т.п.
Код: Выделить всё
public function setUser(User $user)
{
$this->user_id = $user->id;
$this->save(false);
}
Код: Выделить всё
$user->save();
$profile->save();
$profile->setUser($user);
Валидация полей до сохранения в бд совсем ненужна?
Да и сократите вы эти скобки, нафиг они? У вас после if по одному действию, можно и без скобок)
Re: Личный кабинет
Сделал вот так -
и вывод если заполненно -
Что-то я сомневаюсь что это все будет быстрее работать))
Но зато да, все в одной ячейке.
Валидация не нужна, бан переделал.
Валидация нужна только для смены email и пароля, вот так сделал - http://www.elisdn.ru/blog/10/dcurrentpa ... go-parolia
Остальное в основном выводится через чекбоксы и селекты.
При регистрации правда так указал - $model1->save();(в модели так - array('', 'required'),) правильнее было бы конечно - $model1->save(false);
Код: Выделить всё
class User extends CActiveRecord
{
const ROLE_ADMIN = 'admin';
const ROLE_USER = 'user';
const ROLE_BANNED = 'banned';
public $id;
public $verifyCode;
public $old_password;
public $new_password;
public $new_confirm;
public $new_email;
public $akter;
public $fokusnik;
public $roller;
public $zhivaia_skulptura;
public $kosmetolog;
public $fotograf;
public $barmen;
public $trial;
public $body_art;
public $akrobat;
public $zhongler;
public $tancor;
public $massazhist;
public $pevec;
public $gimnast;
public $akvagrim;
public $animator;
public $mim;
public $hudozhnik;
public $parikhmaher;
public $gitarist;
public $skeyter;
public $graffity;
public $fayer_shou;
Код: Выделить всё
public function actionUpdateosobie_naviki($id)
{
$model1=User::model()->findByPk($id);
if(isset($_POST['User']))
{
$model1->naviki = '';
foreach($_POST['User'] as $naviki){
$model1->naviki .= $naviki.':';
}
$model->attributes=$_POST['OsobieNaviki'];
if($model1->save())
$this->redirect($_SERVER['HTTP_REFERER']);
}
$this->redirect(Yii::app()->homeUrl);
}
Код: Выделить всё
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'osobie-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
'action'=>'/cabinet/user/updateosobie_naviki/id/'.$model->osobie_naviki->id,
)); ?>
<?php echo $form->errorSummary($model->osobie_naviki); ?>
<?php
list($akter, $fokusnik, $zhivaia_skulptura, $kosmetolog, $fotograf, $barmen, $trial, $body_art, $akrobat, $zhongler, $tancor, $massazhist,
$pevec, $gimnast, $akvagrim, $animator, $mim, $hudozhnik, $parikhmaher, $gitarist, $skeyter, $graffity, $fayer_shou) = explode(":", $model->naviki);
$model->akter = $akter;
$model->fokusnik = $fokusnik;
$model->zhivaia_skulptura = $zhivaia_skulptura;
$model->kosmetolog = $kosmetolog;
$model->fotograf = $fotograf;
$model->barmen = $barmen;
$model->trial = $trial;
$model->body_art = $body_art;
$model->akrobat = $akrobat;
$model->zhongler = $zhongler;
$model->tancor = $tancor;
$model->massazhist = $massazhist;
$model->pevec = $pevec;
$model->gimnast = $gimnast;
$model->akvagrim = $akvagrim;
$model->animator = $animator;
$model->mim = $mim;
$model->hudozhnik = $hudozhnik;
$model->parikhmaher = $parikhmaher;
$model->gitarist = $gitarist;
$model->skeyter = $skeyter;
$model->graffity = $graffity;
$model->fayer_shou = $fayer_shou;
?>
<div class="row">
<?php echo $form->checkBox($model,'akter'); ?>
<?php echo $form->labelEx($model,'akter') ?>
<?php echo $form->error($model,'akter'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'fokusnik'); ?>
<?php echo $form->labelEx($model,'fokusnik') ?>
<?php echo $form->error($model,'fokusnik'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'zhivaia_skulptura'); ?>
<?php echo $form->labelEx($model,'zhivaia_skulptura') ?>
<?php echo $form->error($model,'zhivaia_skulptura'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'kosmetolog'); ?>
<?php echo $form->labelEx($model,'kosmetolog') ?>
<?php echo $form->error($model,'kosmetolog'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'fotograf'); ?>
<?php echo $form->labelEx($model,'fotograf') ?>
<?php echo $form->error($model,'fotograf'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'barmen'); ?>
<?php echo $form->labelEx($model,'barmen') ?>
<?php echo $form->error($model,'barmen'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'trial'); ?>
<?php echo $form->labelEx($model,'trial') ?>
<?php echo $form->error($model,'trial'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'body_art'); ?>
<?php echo $form->labelEx($model,'body_art') ?>
<?php echo $form->error($model,'body_art'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'akrobat'); ?>
<?php echo $form->labelEx($model,'akrobat') ?>
<?php echo $form->error($model,'akrobat'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'zhongler'); ?>
<?php echo $form->labelEx($model,'zhongler') ?>
<?php echo $form->error($model,'zhongler'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'tancor'); ?>
<?php echo $form->labelEx($model,'tancor') ?>
<?php echo $form->error($model,'tancor'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'massazhist'); ?>
<?php echo $form->labelEx($model,'massazhist') ?>
<?php echo $form->error($model,'massazhist'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'pevec'); ?>
<?php echo $form->labelEx($model,'pevec') ?>
<?php echo $form->error($model,'pevec'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'roller'); ?>
<?php echo $form->labelEx($model,'roller') ?>
<?php echo $form->error($model,'roller'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'gimnast'); ?>
<?php echo $form->labelEx($model,'gimnast') ?>
<?php echo $form->error($model,'gimnast'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'akvagrim'); ?>
<?php echo $form->labelEx($model,'akvagrim') ?>
<?php echo $form->error($model,'akvagrim'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'animator'); ?>
<?php echo $form->labelEx($model,'animator') ?>
<?php echo $form->error($model,'animator'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'mim'); ?>
<?php echo $form->labelEx($model,'mim') ?>
<?php echo $form->error($model,'mim'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'hudozhnik'); ?>
<?php echo $form->labelEx($model,'hudozhnik') ?>
<?php echo $form->error($model,'hudozhnik'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'parikhmaher'); ?>
<?php echo $form->labelEx($model,'parikhmaher') ?>
<?php echo $form->error($model,'parikhmaher'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'gitarist'); ?>
<?php echo $form->labelEx($model,'gitarist') ?>
<?php echo $form->error($model,'gitarist'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'skeyter'); ?>
<?php echo $form->labelEx($model,'skeyter') ?>
<?php echo $form->error($model,'skeyter'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'graffity'); ?>
<?php echo $form->labelEx($model,'graffity') ?>
<?php echo $form->error($model,'graffity'); ?>
</div>
<div class="row">
<?php echo $form->checkBox($model,'fayer_shou'); ?>
<?php echo $form->labelEx($model,'fayer_shou') ?>
<?php echo $form->error($model,'fayer_shou'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Сохранить'); ?>
</div>
<?php $this->endWidget(); ?>
Код: Выделить всё
<?php
list($akter, $fokusnik, $zhivaia_skulptura, $kosmetolog, $fotograf, $barmen, $trial, $body_art, $akrobat, $zhongler, $tancor, $massazhist,
$pevec, $gimnast, $akvagrim, $animator, $mim, $hudozhnik, $parikhmaher, $gitarist, $skeyter, $graffity, $fayer_shou) = explode(":", $model->naviki);
if($akter==1)
$string1 .= 'Актер';
if($fokusnik==1)
$string1 .= ', Фокусник';
if($zhivaia_skulptura==1)
$string1 .= ', Живая скульптура';
if($kosmetolog==1)
$string1 .= ', Косметолог';
if($fotograf==1)
$string1 .= ', Фотограф';
if($barmen==1)
$string1 .= ', Бармен';
if($trial==1)
$string1 .= ', Триал';
if($body_art==1)
$string1 .= ', Боди арт';
if($akrobat==1)
$string1 .= ', Акробат';
if($zhongler==1)
$string1 .= ', Жонглер';
if($tancor==1)
$string1 .= ', Танцор';
if($massazhist==1)
$string1 .= ', Массажист';
if($pevec==1)
$string1 .= ', Певец';
if($gimnast==1)
$string1 .= ', Гимнаст';
if($akvagrim==1)
$string1 .= ', Аквагрим';
if($animator==1)
$string1 .= ', Аниматор';
if($mim==1)
$string1 .= ', Мим';
if($hudozhnik==1)
$string1 .= ', Художник';
if($parikhmaher==1)
$string1 .= ', Парикмахер';
if($gitarist==1)
$string1 .= ', Гитарист';
if($skeyter==1)
$string1 .= ', Скейтер';
if($graffity==1)
$string1 .= ', Граффити';
if($fayer_shou==1)
$string1 .= ', Файер шоу';
if(preg_match("/^,/",$string1)){$string1 = substr($string1, 1, 100000);} echo '<div class="prof3bg">'.$string1.'</div>';}
?>
Но зато да, все в одной ячейке.
Валидация не нужна, бан переделал.
Валидация нужна только для смены email и пароля, вот так сделал - http://www.elisdn.ru/blog/10/dcurrentpa ... go-parolia
Остальное в основном выводится через чекбоксы и селекты.
При регистрации правда так указал - $model1->save();(в модели так - array('', 'required'),) правильнее было бы конечно - $model1->save(false);