Витебск 01
Ребята, подскажите пожалуйста, что такое - dataProvider?
Витебск 01
Помогите пожалуйста с тяжелым(для меня) SQL запросом. У меня есть уникальные имейлы в таблице Арбуз. Есть таблица Банан, в ней 2 столбца, это имейл и его статус, например заблокирован. Мне нужно find()->one() из таблицы Арбуз и чтобы его не было в таблице Банан с определенным статусом, например admin@ru.ru с статусом - активен.
Витебск 01
Получается мы берем имейл, но проверяем чтобы в таблице Банан его не было, например он не покупал определенный товар.
Alexey
читай документацию по active query
Витебск 01
читай документацию по active query
извините конечно, но я ведь нормально попросил, я понимаю, все написано в документации, но и Вы поймите, если я обратился сюда, наверное я не смог в ней разобраться
Alexey
если с первого раза не получается - попробуй прочесть еще раз
Alexey
там точно есть примеры
Витебск 01
если с первого раза не получается - попробуй прочесть еще раз
проблема в том, что я не совсем разбираюсь в тяжелых запросах с join итп
Alexey
тут легко делается без джойнов с подзапросами
Витебск 01
тут легко делается без джойнов с подзапросами
ну если для Вас так легко, не могли бы показать пример?
Alexey
http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail
Alexey
тут куча примеров
Alexey
http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html#where
Alexey
ты просто не прочел потому что много текста
Витебск 01
ты просто не прочел потому что много текста
это легкие примеры, вы читали, что мне нужно?
Витебск 01
мне кажется вы не поняли
Alexey
ты не дочитал до not in условия, походу
Витебск 01
ты не дочитал до not in условия, походу
in ведь, что равно значению, а не есть или нет такого значенияв таблице
Alexey
Alexey
in и not in условия умеют работать с подзапросами, читай снова
Витебск 01
хелп плиз а
Витебск 01
ну как критиковать, так сразу
Витебск 01
помочь хоть строкой кода - нее, читай документациююю
Michael
'cache' => [ 'class' => 'system.caching.CMemCache', 'servers' => [ ['host' => 'localhost', 'port' => 11211, 'weight' => 60], если мемкеш сервак упал или выключен - возмлжно чтоб Юй просто игнорил кеш?
Karim
in ведь, что равно значению, а не есть или нет такого значенияв таблице
->andWhere(['not', ['arbuz.email' => Banan::find()->select('banan.email')->andWhere(['banan.status' => 'active'])->column()]]) Это если с in. А так exists гугли. С exists по идее правильнее
Alexey
и зачем это тут? banan.status
Alexey
и зачем там column?
Karim
Ну там про active статус было.
Alexey
это не ответ )
Karim
Ну тогда не понял вопроса
Alexey
зачем banan.email, banan.status ?
Alexey
зачем column() ?
Alexey
ты правда хочешь имейлы в php выгребать?
Alexey
в подзапрос можно просто query объект передать
Alexey
и все будет работать
Karim
зачем banan.email, banan.status ?
Для наглядности) Про query, да, согласен.
Alexey
->andWhere(['not', ['email' => Banan::find()->select('email')->andWhere(['status' => 'active'])]])
Alexey
все есть в доке :D
Michael
Люди? как игнорить неработающий мемкеш? а не падало все
🎅
помочь хоть строкой кода - нее, читай документациююю
Если ты не куришь тяжелые sql, то что ты вообще делаешь во фреймворке?
M
я создаю новую activeRecord-запись, в которой присутствуют many-many связь с другой таблицей. И после сохранения хочу сделать в afterSave проверку, есть ли у сохраняемой записи related models или нет. Но почему-то в модели при создании create связанные данные не видны, а видны только при редактировании update. Есть ли тут выход?
Alexey
$model->refresh() мб
Evgeny
Народ, думаю внедрить в еще не доделанную до конца структуру категорий nested sets (в дополнение к текущей AL) Есть отличный плагин для этого https://github.com/creocoder/yii2-nested-sets но там везде сказано, что добавлять новый узел нужно только через этот плагин, чтоб пересчитались левые и правые индексы. А есть ли какой то способ что бы импортировать существующую структуру на AL?
Evgeny
если способа нет, то мне проще все снести к черту (там всего20 записей тестовых) и заново набить их
Павел
Проще
Evgeny
ок
Dmytro 🇺🇦
с nested-sets была беда при оптимизации. дюж дохера он запросов шлет...
Dmytro 🇺🇦
именно этот и юзали
Evgeny
у меня к каждой категории будут доп поля с уже вычисленными родителями и детями
Evgeny
так что обращаясь к конкретной категории можно вытащить всю окружающую информацию без доп запросов
Dmytro 🇺🇦
тогда думаю норм
Evgeny
только эту информацию нужно перегенерировать каждый раз
Evgeny
ну мне норм ибо к структуре категорий имеют доступ только админы. а юзеры просто пользуются
Dmytro 🇺🇦
тут проще перегенерить, чем давиться от хреновой тучи запросов
Evgeny
да, но нестед сетс я так подумал для моей ситуации (у узла может быть несколько родителей) не подходит... все равно не избравиться от рекурсивного обхода
Evgeny
в общем еще думаю 🙂 че делать. Листок, ручка, медитация над схемой
Alexander
http://yiiframework.ru/news/191/debug-2013
Alexey
Вышла верси 2.0.13
Alexey
http://yiiframework.ru/news/191/debug-2013
редиректы ловить умеет как симфони панелька?
Alexander
давно
Alexander
AJAX?
Alexander
или именно редиректы?
Alexander
хм...
Alexander
скорее нет, чем да
Alexander
я не знаю
Alexey
http://i.imgur.com/FnlvOMv.png
Mihail
Так учись!! «Напишите мне код» это не «учусь»
Витебск 01
Так учись!! «Напишите мне код» это не «учусь»
Это учусь, когда пытаешься пытаешься, но у тебя не получается, поэтому и спрашиваешь у сообщества
Screamie
Привет, народ! У меня вопрос по части архитектуры и логики приложения. А именно: Есть задача сделать некий таймлайн, где будут отмечаться последние действия пользователей ресурса (зашел в аккаун, добавил документ, отредактировал пост и т.д.). Причем этот таймлайн доступен не во всех версиях приложения и должна быть возможность быстро его отключить/подключить. Это барахло нужно хранить в БД и в файле. Сначала хотел сделать просто две модели, но потом подумал, что не кошерно это. В итоге пилю компонент, который будет через DI создавать нужную модель. И хочу сделать фильтр на подобии AccessControl, что бы вешаться на определенные экшены, которые нужно заносить в таймлайн. Собственно вопрос: это нормально? Или Велосипед и есть более логичный способ?
Витебск 01
Привет, народ! У меня вопрос по части архитектуры и логики приложения. А именно: Есть задача сделать некий таймлайн, где будут отмечаться последние действия пользователей ресурса (зашел в аккаун, добавил документ, отредактировал пост и т.д.). Причем этот таймлайн доступен не во всех версиях приложения и должна быть возможность быстро его отключить/подключить. Это барахло нужно хранить в БД и в файле. Сначала хотел сделать просто две модели, но потом подумал, что не кошерно это. В итоге пилю компонент, который будет через DI создавать нужную модель. И хочу сделать фильтр на подобии AccessControl, что бы вешаться на определенные экшены, которые нужно заносить в таймлайн. Собственно вопрос: это нормально? Или Велосипед и есть более логичный способ?
а нельзя в отдельной таблице вести лог действий и потом его выводить просто? либо я не понял
Mihail
Привет, народ! У меня вопрос по части архитектуры и логики приложения. А именно: Есть задача сделать некий таймлайн, где будут отмечаться последние действия пользователей ресурса (зашел в аккаун, добавил документ, отредактировал пост и т.д.). Причем этот таймлайн доступен не во всех версиях приложения и должна быть возможность быстро его отключить/подключить. Это барахло нужно хранить в БД и в файле. Сначала хотел сделать просто две модели, но потом подумал, что не кошерно это. В итоге пилю компонент, который будет через DI создавать нужную модель. И хочу сделать фильтр на подобии AccessControl, что бы вешаться на определенные экшены, которые нужно заносить в таймлайн. Собственно вопрос: это нормально? Или Велосипед и есть более логичный способ?
Описание похоже на логгинг. Может быть, обойтись кастомным лог таргетом в таком случае?
Screamie
а нельзя в отдельной таблице вести лог действий и потом его выводить просто? либо я не понял
Нужны не все действия, а только определенные. А писать каждый раз в action что-то типа History->add($params) мне кажется немного не правильно
Screamie
Описание похоже на логгинг. Может быть, обойтись кастомным лог таргетом в таком случае?
Хм, пошел читать про Log target. Спасибо за наводку. Может поможет
Mihail
Это бы решило вопрос безболезненного подключения/отключения.
Niko
Привет! Подскажите pls как правильно загуглить Мне нужно из страницы index перейти в update и после сохранения я делаю редирект на index Мне нужно вернуть пользователя на высоту экрана, с которой он перешел на страницу update Как это правильно сделать или как правильно загуглить?
Niko
Находится только скрол к верху страницы