Anatoliy
а как то состояние очерди можно глянуть?
тебе какая конкретно информация об очереди нужна?
Artur‌‌‌
ну например какие задания есть в очереди. Что сейчас выполняется и все в этом духе
Anatoliy
не стоит это пихать в приложение, хотя дело твое. Для каждой очереди есть свои решения, вот например для gearman есть такое http://gaspaio.github.io/gearmanui/
Yuriy
Приветствую, при работе со связными данными в AR нужно прописывать методы getName (с hasOne/hasMany внутри) в обоих моделях ? или в одной хватит?)
SiZE
Одной. Почитай
🎅
💜yii2
Alex
Подскажите библиотеку под yii2 для сжатия картинок под googe speed test и в целом чтобы максимально сжимать картинки для пользователя, без потери качества
Toly
Сжатие без потери качества? Как вы себе это представляете? Я, конечно, слышал про такие технологии (https://nplus1.ru/news/2017/01/13/raisr), но в обычной ситуации это на грани возможного.
Toly
Что именно Google Speed Test порекомендовал?
Nurik
Подскажите библиотеку под yii2 для сжатия картинок под googe speed test и в целом чтобы максимально сжимать картинки для пользователя, без потери качества
Оптимизируй консольными утилитами. png, jpeg ( с заданным качеством). Я так понимаю тебе нужны были оптимизаторы.
Artur‌‌‌
Как в php выполнить команду, без вывода ошибок и исключений?
Artur‌‌‌
@ ?
who are you
без потери качества ничего не сжимается
Dmitriy
Не правда
Dmitriy
https://ru.wikipedia.org/wiki/Сжатие_без_потерь матчать
SiZE
Zip )))
SiZE
Gzip точней
who are you
я о картинках
Yevhenii
$model = self::find() ->select(['item.*']) ->joinWith('itemSpecifications'); switch ($orderBy) { case 'id': $model = $model->orderBy(['item.id' => SORT_DESC]); break; case 'priceMin': $model = $model->orderBy(['item_specification.price' => SORT_ASC]); break; case 'priceMax': $model = $model->orderBy(['item_specification.price' => SORT_DESC]); break; case 'created': $model = $model->orderBy(['item.created_at' => SORT_DESC]); break; case 'totalViews': $model = $model->orderBy(['item.total_views' => SORT_DESC]); break; } $model = $model->joinWith('translations') ->limit($limit) ->offset(($page - 1) * $limit) ->all(); когда беру sql код который генерируется и исполняю то все ок, но activerecords возвращает мне без сортировки
Yevhenii
подскажите плз в чом может біть проблема
SiZE
в коде )
Yevhenii
Та да, ужe нашол
Yevhenii
Спс
Nurik
Удалите это создание из чата
Максим
Не подскажете как получить статистику по группе?
Artur‌‌‌
/link@yetanotherstatsbot
Максим
Да, но ничего не происходит.
Artur‌‌‌
сломался
Artur‌‌‌
)
SiZE
/link@yetanotherstatsbot
Artur‌‌‌
/link@yetanotherstatsbot
Dmitriy
сломался
хм счас починю ПС. это у телеграмма проблемы =(
Yet Another Stats (β)
https://yasb.exileed.com/telegram/chat/1001046156199
Yet Another Stats (β)
https://yasb.exileed.com/telegram/chat/1001046156199
Yet Another Stats (β)
https://yasb.exileed.com/telegram/chat/1001046156199
Yet Another Stats (β)
https://yasb.exileed.com/telegram/chat/1001046156199
Yet Another Stats (β)
https://yasb.exileed.com/telegram/chat/1001046156199
Dmitriy
=(
who are you
/link@yetanotherstatsbot
who are you
другие боты пашут
🎅
Почему activerecord не может сравнить с нулём -__-
🎅
find()->where(['period' => 0]->all() выводит мне все записи, а не только в которых период равен нулю
🎅
У меня где то пробел в знаниях?
Artur‌‌‌
юзай \yii\db\Expression()
🎅
У меня там не дата, а только значения либо 0 либо 1 либо 2
🎅
А, всё понял, башка не варит с утра
Anonymous
привет. кто то реализовывал валидацию уникальности записи по связной таблице? В кратце: Есть таблица slugs в которой хранятся фиксированые урлы к разным страницам(товары, категории, статьи) На странице добавления товара есть поле URL. Связываю через таблице goods_slugs. вроде всё просто, но второй день не могу реализовать(
SiZE
а в чем проблема то?
Anonymous
а в чем проблема то?
да вроде бы всё просто, сделал валидатор, в нём проверяю есть ли запись с таким slug, если есть проверяю принадлежит ли она редактируемому товару. тут возникает первая проблема. Если валидация не прошла, форма обновляется и в ней снова старое значение поля slug. Т.е. Если раньше было url_pervogo_tovara и я изменю урл например на kakoy_to_dlinniy_url_tovara_2 и он уже будет занят тогда: валидатор не пропускает и всё моё длинное название слетает заменяясь на старое значение. Хотя пользователь возможно хотел бы изменит ьодин символ
Anonymous
нет
Anonymous
нет, только окончание урла. Разве это важно в контексте вопроса?
Anonymous
[['slug'], 'validateSlug'], public function validateSlug($attribute, $params) { $slugModel = Slugs::find()->where(['slug' => $this->slug])->one(); if(!$slugModel || $slugModel->good->id == $this->id) { return true; } else { $this->addError($attribute, \Yii::t('app/errors', 'Url {slug} is already taken', ['slug' => $this->slug])); return false; }
Nurik
Я тебя понял. Тебе нужно использовать растояние Левенштейна
Nurik
Ну или
Nurik
typeahead.js
Nurik
input поле в котором будут выходить похожие по названию значения. Либо сохранение предыдущих значений.
SiZE
Тебе только Ванга поможет без кода диагноз поставить )
Nurik
Но вообще, если ты хочешь это делать в модели. то можешь сделать так: если не прошел валидацию, то прежде чем вернуть поле, в aftervalidate возвращать что тебе нужно
Nurik
Понятно вообще о чем речь ? Или не о том ?
Nurik
вариантов на самом деле много. Например можно перед сохранением в таблицу slug, делить его по _ и добавлять в таблицу-словарь. На фронте написать js чтобы после каждого _ на событие keypress() шло обращение в таблицу словарь за словами начинающиеся на нужну комбинацию букв
Nurik
и получится своего рода, автодополнение на slug из таблицы слов на каждое "_" в названии slug
Nurik
Ну и на таблицу-словарь вешать полнтекстовых индекс.
Nurik
Да я бы вообще эту фигню на эксепшн из БД, конкатенировал бы рандомную строку к названию и все, не тревожа лишний раз юзера, всякой ерундой))
🎅
или через rules exists
🎅
там в одну строчку
🎅
по памяти вродь так
Anonymous
спасибо тебе добрый человек)
Anonymous
именно то что я искал
🎅
Значит день прошел не зря ;)
Anonymous
может подскажешь такой же элегантный способ сохранения связной модели viaTable ?