Артём
там просто ничего такого сверхъестественного, обычные запросы, обычные операции а yii2 не знаю и есть шанс изучить
Артём
а там можно кусками брать по типу роутер со всеми путями, работа с бд и т.д?
Dmitry
а там можно кусками брать по типу роутер со всеми путями, работа с бд и т.д?
вот почитай Фабьена, хорошая отправная точка. На русском тоже можешь найти в инете http://symfony.com/doc/current/create_framework/index.html
Артём
и прям по отдельности загружать можно
Артём
ну блин, это велосипед на компонентах другого фрейморка, а я как раз хотел с него слезть)
Dmitry
т.е. ты думаешь что использовать фуллстек фреймворк это лучше чем специализированный?
Dmitry
знаешь за что yii ругают?
Артём
со своего на фрм
(;¬_¬)
знаешь за что yii ругают?
слишком монолитный?
Dmitry
именно
Артём
я вообще на нем странички пару раз делал с формой и все)
(;¬_¬)
это? https://habrahabr.ru/post/136110/
да, но там не все переведено
Артём
6 статей, шестая - https://habrahabr.ru/post/138893/
Dmitry
6 статей, шестая - https://habrahabr.ru/post/138893/
я вот тут читал http://boliev.ru/potencier_contents/
Артём
ага, спасибо, почитаем
(;¬_¬)
6 статей, шестая - https://habrahabr.ru/post/138893/
ну а в оригинале больше десятка
Good
http://bash.im/quote/446850 Цитата #446850
Good
Чето ржу
Сергей
Ахах
Сергей
Баш жив))
Сергей
https://github.com/creocoder/yii2-nested-sets Подскажите, а как выбрать все объекты, которые НЕ являются детьми текущего?
Артём
найти все котороые относится и их удалить, а оставшиеся использовать
Сергей
да, первый вариант, пришедший в голову)
Niko
@predvoditelev WHERE NOT BETWEEN не подходит?
Сергей
@predvoditelev WHERE NOT BETWEEN не подходит?
Да. так было бы красивее. Сделал немного по другому: public function possibleParentCategories(): TreeActiveQuery { return $this->find() ->andWhere([ 'or', ['<', $this->leftAttribute, $this->getAttribute($this->leftAttribute)], ['>', $this->leftAttribute, $this->getAttribute($this->rightAttribute)], ]) ->andWhere(['!=', $this->leftAttribute, '1']); }
Anonymous
Всем привет, ребят кто может помочь с сопоставлением запроса?
Сергей
Привет! Напиши вопрос, может и помогут.
Anonymous
есть метод (переписываю с yii1 под yii2)
Anonymous
public function actionMntr(){ $this->render('mntr'); }
Anonymous
вюха https://pastebin.com/F8PF4YD2 модель https://pastebin.com/GRWkxj3U
Anonymous
там какой то умник запихнул все запросы в цикл, и для каждой записи запросы повторяются
Anonymous
база в пару лямов записей
Anonymous
думаю вы сами понимаете что в итоге)
Anonymous
там в моделе есть 2 метода с запросами getMonitor и getVer
Anonymous
вот надо как то их обьеденить и вытащить информацию всю одним запросом и потом перебирать
Anonymous
не могу ни как придумать как это сделать
Dmitriy
Нууу, как вариант связи прописать в моделях (методы hasOne hasMany) составить запрос используя with и joinWith
Dmitriy
Для связи моделей
Dmitriy
Структуру таблиц, моделей в студию, так проще ответить конкретно
Anonymous
таблица base https://pastebin.com/K2jjJ1ag
Anonymous
таблица devices https://pastebin.com/E17vVigH
Dmitriy
Хмм... А связь через какое поле?
Anonymous
там во вюхе 2 цикла первый использует в моделе 2 запроса по методам getMonitor и getVer и в нутри ещё один цикл который использует getEdate и getTypes
Dmitriy
Я про таблицы, как они связаны?
Anonymous
они используют несколько полей
Dmitriy
Окей.... в студию методы эти методы
Dmitriy
*эти методы
Anonymous
public function getMonitor($id_dev = 0){ $crit = new CDbCriteria(); $crit->condition = "billModem <> 'NULL' AND imei = '".$id_dev."'"; $crit->limit = 1; $crit->order = "edate DESC"; return $this->find($crit); } public function getEdate($imei){ $crit = new CDbCriteria(); $crit->condition = "imei = '".$imei."'"; $crit->order = "edate DESC"; $crit->limit = 1; return $this->find($crit); } public function getTypes($imei, $edate){ $crit = new CDbCriteria(); //$crit->select = "MAX(edate) as flag, edate, type, numDev, imei, statusDev"; $crit->condition = "imei = '".$imei."'"; $crit->condition.= " AND statusDev <> '' AND statusDev <> 'NULL' AND edate = '".$edate."'"; $crit->group = "type, numDev"; $crit->distinct = true; $crit->order = "edate DESC"; return $this->findAll($crit); } public function getVer($imei){ $crit = new CDbCriteria(); $crit->condition = "imei = '".$imei."'"; $crit->condition.= " AND fvVer <> ''"; $crit->order = "date DESC"; $crit->limit = 1; return $this->find($crit); }
Dmitriy
Сложна..... 1. Надо понять что тут вообще происходит (Запрос по критериям) 2. По каким полям связаны таблицы(?) 3. Обозначить связь в модели( Что то типо Public function getCriteria(){ Return hasOne(имя класса,[столбец критерия => столбец текущей мрдели]); } )
Dmitriy
В зависимости от типа 1:1 или 1:m
Dmitriy
И теперь сам запрос
Anonymous
как пример такая логика, скрипт должен брать с таблицы devices imei устройства и по этому imei искать в таблице base информацию об устройстве
Anonymous
ну это на сколько я понимаю
Anonymous
проблема в том что все запросы лежат в цикле и скрипт до ужаса долго грузит информацию
Dmitriy
Ооо есть контакт, в том методе imei=>зависимая таблица
Dmitriy
Да понял я, прост из далека начал объяснять
Dmitriy
*зависимый столбец
Dmitriy
Теперь сам запрос: Find()->with(имя метода связи без get )->sort(ну тут понятно)->limit(количество записей)->all();
Dmitriy
С тлф трудно писать...
Dmitriy
Во вьюху это передаем
Dmitriy
Обращаемся так, если нужно обратиться к зависимой просто обращаемся через ->
Dmitriy
$model->criteria->id; например
Dmitriy
Что произошло: В том запросе получили большую сводную таблицу по imei запихали это все в объекты, пользуемся
Dmitriy
Если надо массив, то isArray метод
Dmitriy
Тфу... asArray
Anonymous
а вы за пк скоро будете?
Dmitriy
Через неделю
Dmitriy
Отдызаю
Dmitriy
Отдыхаю
Павел
В чем суть ?
Павел
Я не пойму проблему
Dmitriy
Доку пересказал по своему😊
Павел
Ну связь one-to-one и грузится сразу. Без ленивой подгрузки. Имхо не надо даже with
В'ячеслав
Всех приветствую. Хочу начать изучить Yii2, что порекоммендуете?