• Почему Yii2 из функциональных тестов не находит identity пользователя после входа?

    @bearenok Автор вопроса
    Не влез в вопрос лог выполнения теста:

    [TransactionForcer] Transaction cancelled; all changes reverted.                                                                                
    [TransactionForcer] no longer watching new connections                                                                                          
    [ConnectionWatcher] no longer watching new connections                                                                                          
    [ConnectionWatcher] closing all (2) connections                                                                                                 
    [yii\db\Connection::open] 'Opening DB connection: mysql:host=localhost;dbname=test'                                                    
    Destroying application                                                                                                                          
    nfirmEmailCest: Test confirm email                                                                                                              
    gnature: frontend\tests\functional\ConfirmEmailCest:testConfirmEmail                                                                            
    st: tests\functional\ConfirmEmailCest.php:testConfirmEmail                                                                                      
    enario --                                                                                                                                       
    Destroying application                                                                                                                          
    Starting application                                                                                                                            
    [ConnectionWatcher] watching new connections                                                                                                    
    [Fixtures] Loading fixtures                                                                                                                     
    [ConnectionWatcher] watching new connections                                                                                                    
    [yii\db\Connection::open] 'Opening DB connection: mysql:host=localhost;dbname=test'                                                    
    [ConnectionWatcher] Connection opened!                                                                                                          
    [ConnectionWatcher] Connection opened!                                                                                                          
    [ConnectionWatcher] no longer watching new connections                                                                                          
    [ConnectionWatcher] closing all (1) connections                                                                                                 
    [Fixtures] Done                                                                                                                                 
    [TransactionForcer] watching new connections                                                                                                    
     am on route "main/user/confirm-email",{"token":"BADVYbYFO2HqHADmDXjoGHS4as9Y_Dtq"}                                                             
    [Request Headers] []                                                                                                                            
    [yii\db\Connection::open] 'Opening DB connection: mysql:host=localhost;dbname=test'                                                    
    [ConnectionWatcher] Connection opened!                                                                                                          
    [TransactionForcer] Connection opened!                                                                                                          
    [TransactionForcer] Transaction started for: mysql:host=localhost;dbname=test                                                          
    [yii\web\Session::open] 'Session started'                                                                                                       
    [Page] /index-test.php?r=main%2Fuser%2Fconfirm-email&token=BADVYbYFO2HqHADmDXjoGHS4as9Y_Dtq                                                     
    [Response] 200                                                                                                                                  
    [Request Cookies] []                                                                                                                            
    [Response Headers] {"content-type":["text/html; charset=UTF-8"]}                                                                                
     see "Подтверждение","h1"                                                                                                                       
     see "Продолжить","form button"                                                                                                                 
     click "Продолжить"                                                                                                                             
    [Uri] http://localhost/index-test.php?r=main%2Fuser%2Fconfirm-email&token=BADVYbYFO2HqHADmDXjoGHS4as9Y_Dtq                                      
    [Method] POST                                                                                                                                   
    [Parameters] {"_csrf-frontend":"cw5_rV1Ujp8_PwGr3WNtq8-7F0-VMWKDMflEj_Z7l90mQybEN3n-0W1oZZyvOTvHvPAgYsJlJMlaoBDdr0r1sw=="}                      
    [Request Headers] []                                                                                                                            
    [yii\mail\BaseMailer::send] 'Sending email "Зрагеистрировался новый ползователь" to "user@ya.ru"'                                          
    [yii\mail\BaseMailer::send] 'Sending email "Вы успешно зарегистрировались на сайте" to "tester.email@example.com"'                     
    [yii\web\User::login] 'User \'26\' logged in from  with duration 0.'                                                                            
    [Redirect with headers]Array                                                                                                                    
    (                                                                                                                                               
        [location] => Array                                                                                                                         
            (                                                                                                                                       
                [0] => http://localhost/index-test.php?r=cabinet%2Fdefault%2Findex                                                                  
            )                                                                                                                                       
                                                                                                                                                    
        [content-type] => Array                                                                                                                     
            (                                                                                                                                       
                [0] => text/html; charset=UTF-8                                                                                                     
            )                                                                                                                                       
                                                                                                                                                    
    )                                                                                                                                               
                                                                                                                                                    
    [Page] http://localhost/index-test.php?r=main%2Fuser%2Fconfirm-email&token=BADVYbYFO2HqHADmDXjoGHS4as9Y_Dtq                                     
    [Response] 302                                                                                                                                  
    [Request Cookies] {"utms":"2f9c854af2d11befdcaab97edb9740fa46f410a99721dbbbcc97fa601f01be71a:2:{i:0;s:4:"utms";i:1;s:206:"a:1:{s:178:"a:6:{i:0;s
    tp://localhost/index-test.php?r=main%2Fuser%2Fconfirm-email&token=BADVYbYFO2HqHADmDXjoGHS4as9Y_Dtq";}";i:1537418982;}";}","_csrf-frontend":"1143
    0;s:14:"_csrf-frontend";i:1;s:32:"UMYij-pNRWd7rZVlsK7-WTFJkYTRY1bn";}"}                                                                         
    [Response Headers] {"location":["http://localhost/index-test.php?r=cabinet%2Fdefault%2Findex"],"content-type":["text/html; charset=UTF-8"]}     
    [Redirecting to] http://localhost/index-test.php?r=cabinet%2Fdefault%2Findex                                                                    
    RROR


    ну и как обычно решил сам:

    проблема была в обращении к Yii::$app->user->id в init() методе одного из подключаемых компонентов. Оказывается перемещаясь между страницами экземпяр приложения похоже остается прженим и компоненты заново не инициализируюися, ну или как-то иначе, подправьте если кому не лень. Ну а я пошел изучать процесс выполнения функциональных тестов..
    Ответ написан
    Комментировать
  • Как узнать причину падения php.exe на windows при запуске определенного сайта?

    @bearenok Автор вопроса
    решил проблему заменив 7.1-64 версию php опенсервера на php-7.1.20-nts-Win32-VC14-x64
    Ответ написан
    Комментировать
  • Как включить распознавание/подсветку JS в PhpStorm?

    @bearenok Автор вопроса
    Как обычно разобрался сам:
    Включить плагин IntelliLang. Донастроить (по желанию) в Settings > Editor > Language Injections
    Ответ написан
    Комментировать
  • Как в Yii2 в dataProvider дописать условие по которому джоинить?

    @bearenok
    вот так у меня работает:
    ->leftJoin(['bsr'=>'billing_stat_request'], "bsr.id = user.id AND bsr.date = '2016-06-03'");
    Ответ написан
  • YII2 ListView. Как вставить блок после каждого 3-го элемента (item)?

    @bearenok
    <?= ListView::widget([
            'dataProvider' => $dataProvider,
            'itemOptions' => ['tag' => false],
         //'itemView' => '_teaser',
            'itemView' => function ($model, $key, $index, $widget) {
                return $this->render('_teaser', [
                    'model' => $model,
                    'key' => $key,
                    'index' => $index,
                    'widget' => $widget,
                ]);
            }
        ]) ?>


    в '_teaser.php' можно обработать $index

    <div class="item" data-key="<?=$model->id?>">
    ...
    </div>
    
    <?php if (($index+1) % 3 == 0) : ?>
    я после третьего?
    <?php endif; ?>
    Ответ написан
    3 комментария
  • Как задать правило для создания ссылки в linkpager Yii2?

    @bearenok Автор вопроса
    решил сам, ранее это приходило в голову, просто я не в нужном месте прописывал правило, надо было указать правило выше первого из тех, что я указал в вопросе:

    //для первой страницы
    ['pattern'=>'novosti','route'=>'novosti/default/index','defaults'=>['page'=>1]],
    //для остальных
    'novosti/<page:\d+>'=>'novosti/default/index',
    // а потом уже
    'novosti'=>'novosti/default/index',
    'novosti/<category:[\w_-]+>'=>'novosti/default/category',
    'novosti/<category:[\w_-]+>/<id:[\w_-]+>'=>'novosti/default/view',
    Ответ написан
    Комментировать