Ответы пользователя по тегу Yii
  • Как избежать варнинга при beforeValidate() в Yii2?

    public function beforeValidate() {
            //shopinf
        if (!empty( $shopinf = Yii::$app->Union->getProfile(['user'=>Yii::$app->User->getUser()]))) {
            $this->shopinf = $shopinf['id'];
        }
        if (parent::beforeValidate()) {
           return true;
        }
        return false;
    }
    Ответ написан
    Комментировать
  • Как разрешить/запретить переход по ссылке с определенной страницы?

    По клику на ссылке, пишите в сессию isLisnkClicked = 1.
    Затем при попытке доступа на на страницу А проверяете этот флаг в сессии.
    Если же много таких ссылок от которых зависит показ какой то страницы -- заведите в базе таблички:

    page
    | id | name |
    /* 
    тут храняться как страницы, те от которых зависит показ какой то страницы, 
    так и зависимые страницы. name это /module/controller/action 
    */

    dependent_page
    | id | pageId | dependentPageId |

    user_available_pages
    | id | userId | dependentPageId | isVisited |

    По таблице user_available_pages проверяете доступна ли эта страница пользователю.

    Так же можете делать проверку по cookie.
    Ответ написан
    Комментировать
  • Yii/php: как заполнить пользовательский шаблон данными?

    0. Создаём модель AUser.php :
    <?php
    class AUser extends CActiveRecord
    {
        public $id, $login, $hash, $email;
        public $tel_1, $tel_2, $tel_3, $country_id;
    
        public static function model($className=__CLASS__)
        {
            return parent::model($className);
        }
        public function tableName(){
    // Название таблицы с данными пользователей в БД
    	return 'user';
        }
    }

    1. В контроллере делаем выборку из БД по id пользователя;
    $data=AUser::model()->findByPk($userId);
    2. Предаём данные в шаблон:
    $this->render('myTmplte', array('userData' => $data));

    3. Выводим данные в шаблоне:
    <body>
    <div>
    Привет, <?=$userData['name']?>!
    </div>
    </body>
    Ответ написан
    Комментировать