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
Artur
Как в php выполнить команду, без вывода ошибок и исключений?
Artur
@ ?
Nurik
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
Удалите это создание из чата
SiZE
Максим
Не подскажете как получить статистику по группе?
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
а в чем проблема то?
Nurik
Anonymous
Anonymous
а в чем проблема то?
да вроде бы всё просто, сделал валидатор, в нём проверяю есть ли запись с таким slug, если есть проверяю принадлежит ли она редактируемому товару.
тут возникает первая проблема. Если валидация не прошла, форма обновляется и в ней снова старое значение поля slug. Т.е. Если раньше было url_pervogo_tovara и я изменю урл например на kakoy_to_dlinniy_url_tovara_2 и он уже будет занят тогда: валидатор не пропускает и всё моё длинное название слетает заменяясь на старое значение. Хотя пользователь возможно хотел бы изменит ьодин символ
Nurik
Anonymous
нет
Nurik
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
Понятно вообще о чем речь ? Или не о том ?
Anonymous
Nurik
вариантов на самом деле много. Например можно перед сохранением в таблицу slug, делить его по _ и добавлять в таблицу-словарь. На фронте написать js чтобы после каждого _ на событие keypress() шло обращение в таблицу словарь за словами начинающиеся на нужну комбинацию букв
Nurik
и получится своего рода, автодополнение на slug из таблицы слов на каждое "_" в названии slug
Nurik
Ну и на таблицу-словарь вешать полнтекстовых индекс.
🎅
Nurik
Да я бы вообще эту фигню на эксепшн из БД, конкатенировал бы рандомную строку к названию и все, не тревожа лишний раз юзера, всякой ерундой))
🎅
или через rules exists
🎅
там в одну строчку
🎅
🎅
по памяти вродь так
Anonymous
Anonymous
спасибо тебе добрый человек)
Anonymous
именно то что я искал
🎅
Значит день прошел не зря ;)
Anonymous
может подскажешь такой же элегантный способ сохранения связной модели viaTable ?