VHS

VHS
Рейтинг
142
Регистрация
28.09.2007

Благодарю за советы!

distinct использовать не удалось, но получился не сильно страшный по производительности, и главное рабочий запрос

$products = CatalogProduct::select('*')->from(
DB::table('catalog_products')
->selectRaw('MAX(catalog_UID) AS catalog_UID, product_UID')
->whereIn('catalog_UID', $groupsArray)
->groupBy('product_UID')
)
->leftJoin('products', function ($join) {
$join->on('products.UID', '=', 'product_UID')
->where('products.price', '>', 0);
})

->orderBy($sortField, $sortWay)
->paginate(12);

Посмотри на мою дату регистрации и подумай, нужна ли мне эта информация или нет?)


Теперь осталось разобраться со второй частью вопроса - как красиво отобрать все продукты в текущей и дочерних каталогах ) 

Пока сделано по старинке : 

$groupsArray[] = $group->UID;
$descendants = $group->descendants()->defaultOrder()->get();
foreach ($descendants as $model) {
$groupsArray[] = $model->UID;
}


$products = CatalogProduct::whereIn('catalog_products.catalog_UID', $groupsArray)
->leftJoin('products', 'products.UID', '=', 'catalog_products.product_UID')
->where('products.price', '>', 0)
->orderBy($sortField, $sortWay)
->get();

Оно конечно работает, но просто интересно, есть ли красивые решения. Ну и еще момент, при такой выборке возможны дубли продуктов, чего конечно бы не хотелось, нужно только первый.

Кирилл, спасибо за отклик. Удивительнейшим образом сегодня все заработало. 

Все оказалось просто. Запрос был частью системы динамического роутинга каталога, очень похоже на вот этот пример (https://gtxtymt.xyz/blog/laravel-pages-from-database). Т.к. эту часть я делал достаточно давно, а потом на несколько месяцев забросил проект, то и воспоминаний о кешировании у меня не осталось =) Убрал ->with('products'), почистил кэш, подзапросы пошли. 

Отвечу сам себе. Все отлично работает через 

hasManyThrough

с одним нюансом - в отладчике нет информации о запросе, которым это было сделано. Что тут за магия - я не могу понять.

отправь запрос по полному URL, что будет?

Если сомневаешься в путях, пропиши в инклюдах вывод имени текущего файла и сравни результат со своими ожиданиями.

Насколько детально не делай выкладки, но разбираться в этой каше по скринам врядли кто-то будет, сам ты это сделаешь куда быстрее.

При выполнении запроса со стороны сервера приходит ответ. На вкладке network смотри док, который приходит в ответ на запрос (тип xhr, видимо 12/ это он). Нажми на него и посмотри текст ответа. Вариантов громадное количество, посмотри что возвращается. А еще лучше измени js на 


success: function (data) {
console.log(data)             if(data['success']){
                $('#cartCntItems').html(data['cntItems']);                 $('#addCart_'+ itemId).hide();                 $('#removeCart_'+ itemId).show();             }         }

И смотри приходящие данные в консоли. Если это не json, в чем я уверен на 99%, то смотри что отдает сервер.

Хочу поблагодарить Алексея за очень качественно выполненную работу! Задача была весьма сложной, с кучей эффектов, состояний элементов - все было сделано на 5+. Особое внимание качеству кода - без нагромождения вложенных элементов и диких списков классов, просто и лаконично, а главное полностью совпадающее с визуализацией из ТЗ. По срокам слегка не уложились, но учитывая сложность проекта, это скорее ошибка оценки трудозатрат. Все правки были выполнены оперативно. Работа с ТС очень порадовала, однозначно рекомендую.

Lanathel:
Model name: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz

вы серьезно думаете что это кто-то купит?
На хабре были акции по раздаче подобного железа в "добрые руки"

https://ark.intel.com/content/www/us/en/ark/products/47925/intel-xeon-processor-e5620-12m-cache-2-40-ghz-5-86-gt-s-intel-qpi.html
этому железу 10 лет. Westmere.

У них конечно поновее и поприличнее что-то было, но это уже "вынесли", в первую очередь :)

Когда брал маму на таобао 4 года назад, такие процы мне китаец в сокеты вместо заглушек вставил и отправил. Бесплатно.

Да, можно расходится. Горе-управленцы с горе-собственниками и горе-инвесторами про%али и кампанию, и клиентов, и свои деньги... Таких бизнес-партнеров в баню, очень показательный пример для всех, как они не умеют находить решения проблем.

PS Обе стороны.

samimages:
Он так или иначе собственник, если за свои проценты не вылез, то кражу в лоб размотать будет трудно, но я могу ошибаться.

Владельцы акций сбербанка могут унести банкомат домой, если стоимость его и его содержимого менее стоимости их акций?

Пока владельцем является юр.лицо, без соответствующих документов, актов приема-передачи, бухгалтерских проводок, действие по выносу оборудования в неизвестном направлении является банальной кражей.

Общество с ограниченной ответственностью (далее также - общество, ООО) относится к юридическим лицам, в отношении которых их учредители (участники) имеют обязательственные права, а не вещные права на их имущество. Имущество, созданное за счет вкладов учредителей (участников), принадлежит обществу на праве собственности (п. 2 ст. 48, п.п. 1, 3 ст. 66 ГК РФ).
Согласно п. 2 ст. 2 Федерального закона от 08.02.1998 N 14-ФЗ "Об обществах с ограниченной ответственностью" (далее - Закон об ООО) общество имеет в собственности обособленное имущество, учитываемое на его самостоятельном балансе.

Сказанное означает, что учредители (участники) не сохраняют право собственности на имущество, переданное обществу в качестве вклада в уставный капитал. Право собственности на это имущество приобретает общество (смотрите также постановление Второго арбитражного апелляционного суда от 08.02.2012 N 02АП-8327/11). Даже в том случае, когда в обществе имеется единственный участник, общество и его участник являются различными субъектами правоотношений, имущество каждого из которых обособлено от имущества другого субъекта (постановление ФАС Уральского округа от 10.04.2013 N Ф09-2009/13).
Всего: 693