Misha
обычный код с гугла
Misha
ааа
Misha
наверное не разумно использовать afterSave в yii\base\Model
Good
А есть тут люди, которые работают с OmgDef/yii2-multilingual-behavior?
И все таки, пробую еще. Не верю, что нету никого
Руслан 🇲🇨
Пожалуйста подскажите работающий пример регистрации пользователей на yii2. Спасибо.
Eugene
Ребята, у меня нельзя в таблицу данные сохранять если там больше 3 записей за 1 день. Вы как нибудь запрещали когда нибудь запись в таблице если if (что то тут == true) {} ? Как это сделать можно или как про это загуглить правильно?
Yuri
сделай
Eugene
редис коунтер
поразвернутее можно, если не сложно?)
Yuri
кэш есть?
Eugene
кэш есть?
нет, сохранение в базу) есть функция которая в итоге делает save() я хочу это запретить по условию
Yuri
делаешь кэш memcached
Yuri
там допустим ключ значение
Yuri
dbcounter => 0
Yuri
и beforesave
Yuri
getdbcounter
Yuri
if < 3 counter++ save
Yuri
else blabla....
Pavel
Ребята, у меня нельзя в таблицу данные сохранять если там больше 3 записей за 1 день. Вы как нибудь запрещали когда нибудь запись в таблице если if (что то тут == true) {} ? Как это сделать можно или как про это загуглить правильно?
Есть возможность сделать это на уровне базы, если надо (по крайней мере, в PostgreSQL): вот тут описано, как создать функцию и констрейнт от этой функции https://www.postgresql.org/message-id/Pine.LNX.4.21.0105101355450.4415-100000%40theory.photodb.org
Eugene
else blabla....
в else могу просто alert типа выплюнуть да?
Alexey
из beforeSave верни фолс
Eugene
спасибо ребята!
who are you
делаешь кэш memcached
Чот замудрено
Yuri
Эээээ
Yuri
там 3 строчки из коробки
who are you
Обязательно кеш юзать для проверки?
Yuri
ну предлагай, если у тебя за сутки всего 3 инсерта в БД
Yuri
я как бы хз. Ну можно в файлик 🙂
Niko
спасибо ребята!
Лучше бефорИнсерт использовать, если ты только новые записи хочешь пропускать
Pavel
Мне кажется лучше на уровне php Кому-то явно можно больше 3х записей сохранить, например админу, или обновить
Всё зависит от задачи, как всегда :) только констрейнт в базе даёт стопроцентную гарантию, что не будет таких записей. Если такая гарантия не нужна, то разумеется лучше в логике приложения проверять. Причем разными вариантами - счётчиком в кэше или ->count() в beforeInsert.
Дмитрий
никто не сталкивался с тем что при перезапуске шторма слетает настройка версии php? задолбала уже, каждый раз менять приходится
Алексей
права на папку .idea в проекте правильные? chown -R сделай на неё
Алексей
мб не сохраняется
first
Ребзя, всем привет. Есть таблица с 318 тыс записями + связанные таблицы, нужно все подтягивать. НО пыха ломается на обычном запросе `Model::find()->all()` Как можно выгрузить все эти данные?Кто сталкивался, может подсказать? Заранее благодарю.
Павел
А зачем тебе все подтягивать?
Дмитрий
В foreach конечно
first
А зачем тебе все подтягивать?
выводить товары на главной странице)
first
find()->each()
благодарю, жаль сам не заметил :С
Дмитрий
выводить товары на главной странице)
300 тысяч товаров на главной? Да вы батенька извращенец
first
300 тысяч товаров на главной? Да вы батенька извращенец
есть фильтры у этих товаров, которые формируются из выборки товаров. т.е. у некоторых товаров будет фильтр цвет:белый,красный,черный и т.д. а у некоторых других товаров будет фильтр цвет:красный,синий, бардовый. Поэтому при генерации страницы нужно делать выборку всех товаров, чтобы сгенерировать фильтры.
Artem
Все равно как-то не нормально каждой раз делать полную выборку 🤔
Дмитрий
А если у тебя будет миллионы товаров? У тебя главная охренеет грузиться просто
Дмитрий
По времени умрет просто
first
скорей всего) но к правильному решению я только иду
first
ну а какие способы еще есть?
Дмитрий
Для ответа на этот вопрос нужно смотреть на устройство и архитектуру
Дмитрий
Аттрибуты товара должны быть отдельной таблицей - имхо
first
да конечно
Дмитрий
first
поэтому я подтягиваю ->with(['params'])
Anonymous
да конечно
Фейк, тебе просто фильтры к товарам нужно применить?
first
нет, есть несколько страниц на сайте, предположим. Мужские вещи Женские Детские
first
у каждой категории есть фильтры, например цвет У мужских вещей есть такие цвета Красный,Синий,Зеленый У женских вещей Белый,Черный, Фиолетовый У детских вещей Бардовый, Голубой, Зеленый И вот пользователь переходит на одну из категорий и видит фильтр цветов, варианты цветов берется из выборки, т.е. в фильтре не будет цвета, которого нет
first
поэтому, чтобы построить список всех цветов в фильтре, нужно при загрузке странице сделать запрос на все товары данный категории и сделать селект цветов, все уже реализовано(говнокод написано) но на боевой БД ломается из-за памяти
Erzhigit
find()->each()
что за метод ?
Дмитрий
Прочитайте в справке)
first
что за метод ?
пакетная выборка https://yiiframework.com.ua/ru/doc/guide/2/db-query-builder/
Дмитрий
да конечно
Ну так и отдавай только эту таблицу, а не собирай существующие фильтры
Дмитрий
ну если у тебя аттрибуты отдельно
first
та оке, отбросим фильтры
first
все равно, нужно же выводить список товаров
first
значит нужно сделать выборку товаров,а в каждой категории по 200к товаров
Павел
Нужно. Но только столько сколько нужно на странице
Павел
Советую посмотреть тебе исходники магазинов на yii, чтобы понять что и как выводить
Павел
Час потратить с пользой
first
благодарю. Да тут вообще весь магазин нужно переписывать с нуля :/
first
не нужно делать выборку. Кому-то нужно курить в мускул
ну не совсем только ради фильтров, еще вывод. Да я понял, что слишком наговнокодил, буду разбираться.
first
Спасибо всем 👍
The Ant
благодарю. Да тут вообще весь магазин нужно переписывать с нуля :/
чтоб не переписывать с нуля нужно брть готовые екомерс фреймы. престашоп например на симфонии, или силиус
The Ant
и не выдумывать свои велосипеды на фрейме, который очень плохо подходит под эти задачи
The Ant
Эх чо престу на симфони переписали?
она и была на симфони вроде, оч древней версии )
Павел
Да ну. Чот когда то давно смотрел нифига не симфони