These are chat archives for yiisoft/yii2/rus

2nd
Oct 2017
AlexeyGen
@AlexeyGen
Oct 02 2017 02:32
Привет всем!
KarmaBot
@KarmaBot
Oct 02 2017 02:32
Приветствую тебя, @AlexeyGen!
AlexeyGen
@AlexeyGen
Oct 02 2017 02:33
Народ! Подскажите по регэкспам.
Нужно составить регэксп, который по введённому тексту подбирает из БД слова, даже если в введённом тексте допущена ошибка.
Yaroslav
@dyar74
Oct 02 2017 04:11
лайк
Punka
@Punka
Oct 02 2017 04:25

приветствую коллеги

KarmaBot
@KarmaBot
Oct 02 2017 04:26
@Punka, и тебе привет ;)
Punka
@Punka
Oct 02 2017 04:56
@AlexeyGen используй триграммный поиск
@AlexeyGen либо нейронные сети :D
Eugene
@bloodrain777
Oct 02 2017 05:46
@Punka Привет, по поводу логов что я писал на выходных. Оказывается он сам не создает файл, нужно обязательно чтобы существовал файл app.log тогда будет писать :)
Всем привет
KarmaBot
@KarmaBot
Oct 02 2017 05:46
@bloodrain777 даров!
Punka
@Punka
Oct 02 2017 05:47
@bloodrain777 )
@bloodrain777 привет
des1roer
@des1roer
Oct 02 2017 06:21
хей всем
а как можно мокнуть модель?
например id, name, url
codeception
Punka
@Punka
Oct 02 2017 06:33
мокнуть?
Eugene
@bloodrain777
Oct 02 2017 06:37
@Punka имеется ввиду Моки
Punka
@Punka
Oct 02 2017 06:37
@bloodrain777 впервые слышу такое
*вижу
Eugene
@bloodrain777
Oct 02 2017 06:38
нуу ты даешь :(
Punka
@Punka
Oct 02 2017 06:39
@bloodrain777 oO
Eugene
@bloodrain777
Oct 02 2017 06:42
@des1roer а зачем мок модели? я так понимаю это не модель - модель, а ActiveRecord ?
@Punka Короче в большенсве случаев используется если нужно протестить APi какое то
des1roer
@des1roer
Oct 02 2017 07:11
    $item = Stub::make(Item::class, [
        'id' => 100,
        'sid' => 666,
        'name' => 'Товар 1',
        'slug' => 'item-slug',
        'price' => 156.90,
        'is_disabled' => false,
        'getBaseUrlForImg' => 'items/100/',
        'getFullDescription' => ' просто    описание   с  пробелами!     ',
        'agg_photos' => '{0}',
    ]); 
Eugene
@bloodrain777
Oct 02 2017 07:18
@des1roer Так а нельзя это сделать фикстурами?
des1roer
@des1roer
Oct 02 2017 07:18
т.е
Eugene
@bloodrain777
Oct 02 2017 07:19
@des1roer я так понимаю это запись из БД ?
des1roer
@des1roer
Oct 02 2017 07:26
да
Eugene
@bloodrain777
Oct 02 2017 07:31

Ну так сделай фикстуру к примеру item.php

return [
        [
           'id' => 100,
        'sid' => 666,
        'name' => 'Товар 1',
        'slug' => 'item-slug',
        'price' => 156.90,
        'is_disabled' => false,
        'getBaseUrlForImg' => 'items/100/',
        'getFullDescription' => ' просто    описание   с  пробелами!     ',
        'agg_photos' => '{0}',
       ]
]

потом создай класс фикстуры ItemFixture.php

class ItemFixture extends ActiveFixture
{
    public $tableName = 'item';

    public $dataFile = 'путь к файлу фикстуры item.php';
}

Затем в тесте своем

 public function fixtures()
    {
        return [
            ItemFixture::className(),
        ];
    }
KarmaBot
@KarmaBot
Oct 02 2017 07:31
@bloodrain777, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Eugene
@bloodrain777
Oct 02 2017 07:32
При запуске теста у тебя в базу залетит запись и работай через обычную модель с ней
Eugene
@bloodrain777
Oct 02 2017 09:02
Мужики, API возвращает файл на скачивание. Как отдать его пользователю?
Andrey Kushnarev
@andku83
Oct 02 2017 09:02
сохранить себе и отдать, или редирект
Eugene
@bloodrain777
Oct 02 2017 09:03
А проксировать никак нельзя?
Eugene
@bloodrain777
Oct 02 2017 09:39
Мужики, show insert query нету такого чтоли в mysql ? никогда раньше не надо было, столкнулся и чет ниче не могу понять
Norn
@n0rn
Oct 02 2017 10:27
здарова
KarmaBot
@KarmaBot
Oct 02 2017 10:27
Не узнал тебя, @n0rn. Богатым будешь :)
Norn
@n0rn
Oct 02 2017 10:27
@KarmaBot окай(
Столкнулся с проблемой работы рекапчи гугла на сайте на мобилка https://pp.userapi.com/c840329/v840329565/d3d9/ipcr1obxs34.jpg
мб кто сталкивался?
des1roer
@des1roer
Oct 02 2017 10:41
а как поменять в апи аловд экшен?
public function run($route, $params = [])
{
    $this->allowedActions =  \Yii::$app->params["enableFilters"] ? ['index', 'view', 'update', 'create', 'delete'] : [];
    return parent::run($route, $params);
}
Eugene
@bloodrain777
Oct 02 2017 10:45
Никак, от тебя даж спасибо не дождешься
dsx90
@dsx90
Oct 02 2017 11:05
Всем привет! Ни как не хочет записывать значение в DropDownList через Ajax. Подскажите в чем моя ошибка
KarmaBot
@KarmaBot
Oct 02 2017 11:05
Hello, @dsx90!
dsx90
@dsx90
Oct 02 2017 11:05
Безымянный.png
Roman Salnikov
@RSalo
Oct 02 2017 11:17
@n0rn это ты делаешь невидимую рекапчу?
Andrey Kushnarev
@andku83
Oct 02 2017 11:19
@dsx90 у тебя взаимоисключающие ajax и post
Eugene
@bloodrain777
Oct 02 2017 11:20
Как это?
@dsx90 Валидация проходит в модели?
Norn
@n0rn
Oct 02 2017 11:23
@RSalo сделал) но на мобилке не сильно хорошо она работает
Roman Salnikov
@RSalo
Oct 02 2017 11:24
@n0rn мож у тебя стили перекрывают кнопки или кэш попробуй почистить
Norn
@n0rn
Oct 02 2017 11:25
  • это происходит на андроидах 4.0
Roman Salnikov
@RSalo
Oct 02 2017 11:27

у меня сейчас с невидимой капчей тоже проблемы.

    public function clientValidateAttribute($model, $attribute, $view)
    {
....
        return "(function(messages, deferred) {
                    deferred.add(function(def) {
                        def.promise().then(function() {
                            grecaptcha.execute();
                        }).then(function() {
                            console.log(grecaptcha.getResponse()); // <-- тут выполняется первее, чем grecaptcha.execute()
                            if(!grecaptcha.getResponse()){messages.push('{$message}');}
                        });
                        def.resolve();
                    })
                })(messages, deferred);";
    }

почему-то выполняется первее второе then, чем первое. и соответственно сразу выполняется grecaptcha.getResponse() а потом уже делается запрос токена на сам сервер через grecaptcha.execute(). я уже битый час мудохаюсь и не могу понять в чем проблемы

  • это происходит на андроидах 4.0
так вроде у них для андройдов там что-то своё есть
я не заходил не смотрел что, но видел, что есть
Roman Salnikov
@RSalo
Oct 02 2017 11:33
@Nuzsk хелпани пжалст
Norn
@n0rn
Oct 02 2017 11:33
@RSalo есть, но там сама реализации капчи на самом андриде https://developer.android.com/training/safetynet/recaptcha.html
Roman Salnikov
@RSalo
Oct 02 2017 11:34
@n0rn ааа, вот оно что. а ты в дебагере смотрел капчу куда делась сама кнопка? мож там что-то стили перебивает
Norn
@n0rn
Oct 02 2017 11:35
@RSalo прикол в том что в эмуляторе этого нету, а инструмент разработчиков на моб. я хз как посмотреть)
@RSalo на вебе если смотреть через эмуляторы мобилок все норм, а вот когда на самой мобилке вот такой вот гемор
Roman Salnikov
@RSalo
Oct 02 2017 11:37
@n0rn а там можно делать удаленный дебаг https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
Andrey Kushnarev
@andku83
Oct 02 2017 11:37
@RSalo а если так:
                        def.promise().then(grecaptcha.execute
                        ).then(function() {
Roman Salnikov
@RSalo
Oct 02 2017 11:40
Andrey Kushnarev
@andku83
Oct 02 2017 11:41
а если содержимое второго then обернуть в setTimeout()?
Norn
@n0rn
Oct 02 2017 11:41
@RSalo лул, прикольно что-то новое узнал за сегодня
Roman Salnikov
@RSalo
Oct 02 2017 11:46

@andku83 работает

    public function clientValidateAttribute($model, $attribute, $view)
    {
...
        return "(function(messages, deferred) {
                    deferred.add(function(def) {
                        def.promise().then(function() {
                            grecaptcha.execute();
                        }).then(function() {
                        setTimeout(function(){
                        console.log(grecaptcha.getResponse());
                        if(!grecaptcha.getResponse()){messages.push('{$message}');} // <-- работает
                        }, 1000);
                        });
                        def.resolve();
                    })
                })(messages, deferred);";
    }

но это оооочень кривой способ. у всех разная скорость интернета и на быстром интернете может и сработает, но на медленном будет опять такой же косяк вылазить=)

Andrey Kushnarev
@andku83
Oct 02 2017 12:11
@RSalo это была всего лишь проверка в чем причина - получается что промис не дожидается выполнения первого запроса, вот тут и нужно разбираться
Nuzsk
@Nuzsk
Oct 02 2017 12:12

@Nuzsk хелпани пжалст

@RSalo а я что-то не смотрел на чат

ты уже разобрался?
Roman Salnikov
@RSalo
Oct 02 2017 12:17
@Nuzsk неа еще
промисы не работают=(
dsx90
@dsx90
Oct 02 2017 12:17
@bloodrain777 да
Roman Salnikov
@RSalo
Oct 02 2017 12:19
@andku83 так я по нему и делаю
Кот Олигарха
@OligarchCat_twitter
Oct 02 2017 19:42
есть кто живой?
KarmaBot
@KarmaBot
Oct 02 2017 19:42
@OligarchCat_twitter, и какой ответ ты ожидаешь услышать?
Roman
@kpp
Oct 02 2017 20:43
Привет! Есть маны как создать форму со вставкой многих значений зависимых моделей (hasMany)?
KarmaBot
@KarmaBot
Oct 02 2017 20:43
@kpp и тебе не хворать :)