Личный кабинет

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Личный кабинет

Сообщение Yurec » 2013.12.16, 20:22

Всем привет!

Создал личный кабинет, вот какое получилось действие -
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/
Или наоборот я все правильно сделал, т.к. при редактировании будет обращение к одной таблице, более маленькой?
Но с другой при входе или просмотре личных кабинетов ко многим!

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Личный кабинет

Сообщение anton44eg » 2013.12.16, 20:33

у вас один и тот же id у всех??

Аватара пользователя
stop4uk
Сообщения: 158
Зарегистрирован: 2012.12.18, 07:08

Re: Личный кабинет

Сообщение stop4uk » 2013.12.16, 20:38

Во 1. Есть кнопка "Code", которая прекрасно стилизует код.
Мои рекомендации:

Во 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;
В 3. Сократить количество Ваших таблиц... это очень желательно
Например если у Вас поля в таблицах intworks и opitworks одинаковые, их можно соединить в одну, например works и просто добавить параметр in_opit (boolean), который будет разделять к какой категории относится работа.
Создать таблицу профиль: в которую писать данные о себе, навыки (засовывать данные после serialize в одну ячейку), данные о городе и удобном времени... таким образом, код станет красивее, да и количество таблицу сократится..

P.S. Это лично мое мнение)


Аватара пользователя
stop4uk
Сообщения: 158
Зарегистрирован: 2012.12.18, 07:08

Re: Личный кабинет

Сообщение stop4uk » 2013.12.16, 20:41

Vse tak ploho?) Konstruktiv!!!! :D

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.16, 20:44

anton44eg, да, при регистрации создаются данные в таблицах с одними и теми же 'id' для данного пользователя

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.16, 21:04

stop4uk, спасибо, буду сокращать, вчера начал писать, сегодня закончил и только недавно задумался, и то случайно, а правильно ли я сделал, теперь придется переделывать)

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Личный кабинет

Сообщение anton44eg » 2013.12.16, 21:11

не проще ли тогда использовать реляционность?

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.16, 21:43

через serialize вывод по моему не получится - http://SSMaker.ru/8e006461/, я в общем-то впервые слышу об этом,
а вот in_opit (boolean) это да, идея, еще поле создать с привязкой к пользователю, да и так же не по id привязку нужно делать, а через HAS_MANY(его не использовал, как я понимаю BELONGS_TO тут тоже пойдет), иначе потом могут проблемы начаться, если что-нибудь например в бд удалить, id не тот и все полетит, спасибо, ошибки понял!

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.16, 21:45

да, сначала даже не подумал, действительно проще и правильнее

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.16, 21:49

anton44eg, я пол часа обдумывал, ответ писал, даже не видел Ваше сообщение, действительно проще, хорошо что все таки спросил на форуме

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.16, 23:31

Код: Выделить всё

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: Личный кабинет

Сообщение sluchainiyznak » 2013.12.17, 06:29

1. Не знаю на чем основан ваш код

Код: Выделить всё

$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. По экшну регистрации, дык там вообще взрыв мозга (вы видимо этот проект делаете исключительно для себя).
з.ы.: вы надеюсь внимательно читали руководство по фреймворку

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.17, 07:50

Спасибо, действительно проще, реляционности раньше не было, все были самостоятельными, теперь приблизительно так в виде -

Код: Выделить всё

<?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 прошел, вот опять взялся, решил личный кабинет сделать.
Да это для себя.

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.17, 07:52

Точнее теперь вот так:

Код: Выделить всё

<?php if($model->osebe['text']==null&&Yii::app()->user->id == $model->osebe['user_id']){ ?>

Аватара пользователя
sluchainiyznak
Сообщения: 617
Зарегистрирован: 2013.05.19, 17:51
Откуда: ХМАО-Югра, г. Сургут
Контактная информация:

Re: Личный кабинет

Сообщение sluchainiyznak » 2013.12.17, 09:30

вы наверное не в курсе, но получить доступ к атрибутам модели можно и так : $model->osebe->text или $model->osebe->user_id

p.s.: читаем руководство!

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.17, 09:40

в курсе, просто по привычке пишу

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.17, 09:45

мне так удобнее, привычнее, на CodeIgniter так привык писать, там только так и можно

Аватара пользователя
stop4uk
Сообщения: 158
Зарегистрирован: 2012.12.18, 07:08

Re: Личный кабинет

Сообщение stop4uk » 2013.12.17, 10:25

А не проще все таки данные о навыках засовывать в одну ячейку через разделитель? вряд ли вы будете в зависимости от навыка накидывать какие-либо параметры пользователю...

Почему нельзя провести сериализацию данных, собранных из массива значений, который был получен в зависимости от протыканных галочек и сунуть все это в одну ячейку?

P.S. Хорошо, допустим не надо Вам сериализацию делать, не хотите вы... так обработайте массив галочек foreach (или как Вам удобнее и проще), получите переменные + вставьте разделитель между ними и суньте в БД. Далее, при выводе, поднимите эту запись из БД, пропустите ее через explode и выведите список...

P.p.S. Ваш код actionRegistration(), который содержит в себе

Код: Выделить всё

$model9->user_id = $model->id; // и т.д. и т.п.
 
не проще засунуть в каждую модель, кроме users функцию определения id юзверя? что-то вроде

Код: Выделить всё

public function setUser(User $user)
    {
        $this->user_id = $user->id;
        $this->save(false);
    }
 
а в контроллер

Код: Выделить всё

$user->save();
$profile->save();
$profile->setUser($user);
 
Откуда взят код $model->ban = 1; (по умолчанию пользователь забанен что ли? тогда уж не забанен, а неактивен...)
Валидация полей до сохранения в бд совсем ненужна?
Да и сократите вы эти скобки, нафиг они? У вас после if по одному действию, можно и без скобок)

Yurec
Сообщения: 118
Зарегистрирован: 2013.11.01, 06:33

Re: Личный кабинет

Сообщение Yurec » 2013.12.17, 15:11

Сделал вот так -

Код: Выделить всё

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);

Ответить