Найдено 172 результата

Wizard
2018.03.06, 22:02
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

Посоветовали такой вариант, только как это теперь транслировать в yii SELECT `players`.* FROM `players` INNER JOIN `players_styles` ON `players`.`id` = `players_styles`.`player_id` INNER JOIN `style` ON `players_styles`.`style_id` = `style`.`id` LEFT JOIN `players_modes` ON `players`.`id` = `player...
Wizard
2018.03.06, 18:39
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

каждый join дублирует запись, если это возможно то попробуйте высчитать количество соответствий в HAVING ели нет то только подзапрос в in(...)
Wizard
2018.03.06, 18:36
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

попробуйте убрать лишние связи и оставить только style и players_styles добавьте GROUP BY - у себя проверил, все сработало пс и players_styles есть style_id потому достаточно оставить одну связь в итоге получится что то подобное SELECT p.* FROM players AS p INNER JOIN players_styles ps ON p.id ps.p...
Wizard
2018.03.06, 17:59
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

попробуйте убрать лишние связи и оставить только style и players_styles добавьте GROUP BY - у себя проверил, все сработало пс и players_styles есть style_id потому достаточно оставить одну связь в итоге получится что то подобное SELECT p.* FROM players AS p INNER JOIN players_styles ps ON p.id ps.pl...
Wizard
2018.03.06, 17:23
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

не уверен что верно отследил зависимости в вашем запросе но можете проверить голым запросом

Код: Выделить всё

p.player_id in (
   SELECT ps.player_id 
   FROM style s
   LEFT JOIN players_styles ps 
   WHERE s.id in('3', '4', '5') 
   GROUP BY ps.player_id 
   HAVING COUNT(*)=3
)
еще в вашем запросе нет GROUP BY
Wizard
2018.03.06, 17:02
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

В данный момент сделано так: если я указал [1,2,3] и у одной из моделей несколько связей(например: 1,2,3), а у другой (1,2,3,5) то in выберет обе записи. то есть согласно условию в выборку должна попасть только первый объект у которого 1,2,3 а второй проигнорировать? сложно сказать без примера запр...
Wizard
2018.03.06, 12:56
Форум: Общие вопросы (Yii 2.x)
Тема: Как получить имя старой картинки в экшене?
Ответы: 9
Просмотры: 873

Re: Как получить имя старой картинки в экшене?

Привет. Что касается просто удаления картинки по кнопке я разобрался, там ее нахожу по id и удаляю А тут задача немного другая, удалять картинку из папки и ее запись в базе, при загрузке новой картинке, вместо нее. Проще говоря, есть картинка профиля, когда загружаю новую чтобы старая удалялась Вот...
Wizard
2018.03.06, 12:30
Форум: Общие вопросы (Yii 2.x)
Тема: Вывод сочетаемых/сопутствующих товаров
Ответы: 5
Просмотры: 730

Re: Вывод сочетаемых/сопутствующих товаров

Модель товара public function getRelatedAssignments() { return $this->hasMany(RelatedAssignment::class, ['product_id' => 'id']); } public function getRelateds() { return $this->hasMany(Product::class, ['id' => 'related_id'])->via('relatedAssignments'); } Связи class RelatedAssignment extends ActiveR...
Wizard
2018.03.06, 11:20
Форум: Общие вопросы (Yii 2.x)
Тема: Выбрать записи у которых есть только указанные связи
Ответы: 18
Просмотры: 1408

Re: Выбрать записи у которых есть только указанные связи

Добрый день, не подскажите как сделать select, который будет выбирать записи у которых обязательно есть только указанные связи? В данный момент сделано так: если я указал [1,2,3] и у одной из моделей несколько связей(например: 1,2,3), а у другой (1,2,3,5) то in выберет обе записи. <?php $query ->jo...
Wizard
2018.03.06, 09:35
Форум: Общие вопросы (Yii 2.x)
Тема: Как правильно сделать выборку many_many в Yii2?
Ответы: 11
Просмотры: 1044

Re: Как правильно сделать выборку many_many в Yii2?

в вашем случае получается что то подобное SELECT `p`.* FROM `products` `p` INNER JOIN `products_categories` ON `p`.`id` = `products_categories`.`product_id` INNER JOIN `categories` `c` ON `products_categories`.`category_id` = `c`.`id` WHERE `c`.`id` IN (2, '3', '4') GROUP BY `p`.`id` из чего следует...
Wizard
2018.03.06, 08:19
Форум: Общие вопросы (Yii 2.x)
Тема: Как правильно сделать выборку many_many в Yii2?
Ответы: 11
Просмотры: 1044

Re: Как правильно сделать выборку many_many в Yii2?

Relation это связь а не фильтр, потому использовать inner в качестве фильтра это более чем и нормально
Wizard
2018.03.05, 11:23
Форум: Общие вопросы (Yii 2.x)
Тема: Как правильно сделать выборку many_many в Yii2?
Ответы: 11
Просмотры: 1044

Re: Как правильно сделать выборку many_many в Yii2?

в любом случае запрос должен выглядеть как то так SELECT p.* FROM products WHERE id in(SELETC product_id FROM products_to_category WHERE category_id in (1, 2, 3, ...)) кстати насчет подзапроса, а что если у этих категорий миллион товаров, тогда этот вариант не подходит так вы ведь весь миллион выби...
Wizard
2018.03.05, 10:14
Форум: Общие вопросы (Yii 2.x)
Тема: Когда yii2-bootstrap4?
Ответы: 20
Просмотры: 5663

Re: Когда yii2-bootstrap4?

А в чем проблема? подключай свою 4-ю версию и пиши код - это же легко или я чего-то не понимаю... Проблема - необходимость перепрограммировать целиком захардкоженные Navbar, Breadcrumbs, ActiveForm, Html, LinkPager и всё остальное под новую вёрстку. Легко - это когда вёрстка отделена от кода (видже...
Wizard
2018.03.05, 09:57
Форум: Общие вопросы (Yii 2.x)
Тема: Как правильно сделать выборку many_many в Yii2?
Ответы: 11
Просмотры: 1044

Re: Как правильно сделать выборку many_many в Yii2?

адский запрос к базе :) ну так это yii2 так формирует, я же через активрекорд делаю) а в вашем каталоге всего 2 уровня? да нет, так запрос формируете вы а yii его исполняет. Вы для чего то join-ите к таблице товаров таблицы категорий максимум можно так, при количестве товаров до 20-30к (возможно и ...
Wizard
2018.03.05, 09:35
Форум: Общие вопросы (Yii 2.x)
Тема: Как правильно сделать выборку many_many в Yii2?
Ответы: 11
Просмотры: 1044

Re: Как правильно сделать выборку many_many в Yii2?

SELECT COUNT(*) FROM `products` LEFT JOIN `products_to_category` ON `products`.`id` = `products_to_category`.`product_id` LEFT JOIN `category` ON `products_to_category`.`category_id` = `category`.`id` WHERE (`category`.`parent_id`=1) AND (`publish`=1) адский запрос к базе :) а в вашем каталоге всег...
Wizard
2018.03.04, 17:47
Форум: Общие вопросы (Yii 2.x)
Тема: yii2-save-relations-behavior и валидация
Ответы: 12
Просмотры: 1463

Re: yii2-save-relations-behavior и валидация

Собственно ни каких прави прописывать и не надо - в catalog у вас попадают иды это ключи объектов тем самым автоматом загружаете модели каталогов, если такого объекта нет то ничего не запишется. в правилах оставьте [['catalogs'], 'safe'], если все же хочется сделать валидацию (в чем собственно скоре...
Wizard
2018.03.04, 17:15
Форум: Общие вопросы (Yii 2.x)
Тема: yii2-save-relations-behavior и валидация
Ответы: 12
Просмотры: 1463

Re: yii2-save-relations-behavior и валидация

а как ваша модель загружается в контроллере, связи точно сохраняются? вот так, все сохраняется, только валидация не работает $model = Brigada::findOne(Yii::$app->user->id); if($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->getSession()->setFlash('success', 'Ваш профиль усп...
Wizard
2018.03.04, 15:37
Форум: Общие вопросы (Yii 2.x)
Тема: yii2-save-relations-behavior и валидация
Ответы: 12
Просмотры: 1463

Re: yii2-save-relations-behavior и валидация

попробуйте вот так: <?= $form->field($model, 'catalog[]')->widget(Select2::classname(), [ если не получится, тогда покажите как к вам приходят данные в POST POST: Array ( [_csrf-frontend] => R5Yd9Vw0q4zKqjDmLihvN5Ps_hoKKsrCGVM3c3H8hAYg-07DNWHl7fPnc615Xz553p6JcH1n_YdNNV8aHbv8Pg== [Brigada] => Array ...