@laravel_pro

Страница 508 из 2014
Luka
11.06.2017
10:48:31
А что за записи? Почему уникальное значение вдруг не уникальное?
Ну человек заполняет базу Тэгами, если такой тэг уже есть. он не должен записаться, поэтому надо чтобы записи не было и вылетело сообщение return back()->with('message','Ошибка! Данный тэг уже есть в базе');

Андрэ
11.06.2017
10:50:34
ну да, или exception ловить. Потому что с insert ignore есть забавная штука - если есть autoincrement поле, то оно будет увеличиваться, даже если запись не вставилась, а отсеялясь по ignore

Anton
11.06.2017
11:11:02
firstOrCreate/ firstOrNew как вариант

Google
Андрэ
11.06.2017
11:11:55
Это же select

Anton
11.06.2017
11:16:00
Можно рассматривать его как insert с предварительной проверкой на существование записи

В доке он в разделе "Other Creation Methods"

Андрэ
11.06.2017
11:24:44
Как можно firstOrNew рассматривать как insert, если он ничего не создает в таблице?

Anton
11.06.2017
11:25:16
First or create создает

DMITRY
11.06.2017
11:30:48


трансляция fwdays

сейчас

Андрэ
11.06.2017
12:56:31
First or create создает
Ну все равно это лишнее, зачем делать выборку, если она нам не нужна

Luka
11.06.2017
13:13:21
подскажите, а shuffle как то отдеально работает в Ларе?



public function index() { $tags=Tag::all(); $end_tags = count($tags); shuffle($tags); return view('index',['tags' => $tags, 'end_tags' => $end_tags]); }

Google
sofar
11.06.2017
13:24:01
Разве Tag::all() не коллекцию вернет?

Андрэ
11.06.2017
13:24:22
Я в соседнем чате уже это сказал

sofar
11.06.2017
13:25:25
А, я не читал тот чат

Luka
11.06.2017
13:30:51
Я в соседнем чате уже это сказал
у меня выходит такой массив {{ $tag->id }} {{ $tag->tag }} {{ $tag->category }}

мне нужен array_multisort такой тип сортировки?

Андрэ
11.06.2017
13:31:38
Я ж там написал, сделай $tags->toArray() и shuffle ему

у меня выходит такой массив {{ $tag->id }} {{ $tag->tag }} {{ $tag->category }}
К элементам массива нельзя обращаться через -> если что. Это признак объекта самый явный)

Luka
11.06.2017
13:32:35
К элементам массива нельзя обращаться через -> если что. Это признак объекта самый явный)
в доках везде, получается они всегда объект передают? @foreach ($users as $user) <p>This is user {{ $user->id }}</p> @endforeach

Андрэ
11.06.2017
13:46:40
Да. Просто он реализует нужные интерфейсы.

Iterable, countable

Luka
11.06.2017
14:18:21
Iterable, countable
Все спасибо, потумил минут , нашел как сделать) public function index() { $tags=Tag::all('tag')->toArray(); $end_tags = count($tags); shuffle($tags); return view('index',['tags' => $tags, 'end_tags' => $end_tags]); }

Андрэ
11.06.2017
14:18:51
А чего туптиь, я ж сразу сказал - toArray сделать)

Luka
11.06.2017
14:21:42
А чего туптиь, я ж сразу сказал - toArray сделать)
я делал $tags=Tag::all('tag'); $tags->toArray();

Андрэ
11.06.2017
14:22:07
А надо было $tags = $tags->toArray()

Luka
11.06.2017
14:22:11
ну да

Андрэ
11.06.2017
14:22:15
ну или лучше - как ты сделал в итоге

Luka
11.06.2017
14:22:27
теперь осталось сделать вывод только 30 тэгов

кстати, можно сделать, что бы только 30 записей бралось с таблицы? Tag::all('tag');

вроде можно.

Google
Андрэ
11.06.2017
14:24:08
Ну так залезь в доку же) там описано как брать записей, сколько надо

Luka
11.06.2017
14:35:15
@for ($key = 0; $key < 30; $key++) #{{ $tags[$key]['tag'] }} @endfor

Андрэ
11.06.2017
14:35:42
Не делай так)

Vlad
11.06.2017
15:10:35
Добрый день...не могу вкурить как в sleepinowl сделать загрузку изобажений

Luka
11.06.2017
16:59:14
Андрэ
11.06.2017
17:00:09
Почему?
Не надо выбирать из базы больше, чем надо. Не надо такую логику во view помещать

Luka
11.06.2017
17:00:37
Не надо выбирать из базы больше, чем надо. Не надо такую логику во view помещать
Так мне же надо выбрать все записи и уже рандомить их

Андрэ
11.06.2017
17:01:04
Select * from table order by rand?

Luka
11.06.2017
17:01:09
Мне не надо брать 30 записей. Мне надо взять все их отсортировать и вывести 30

Андрэ
11.06.2017
17:01:11
Limit 30

так отсортировать или случайные?

Luka
11.06.2017
17:01:34
Я понял, передать на мускл.

Рандом

Андрэ
11.06.2017
17:01:52
ну и даже если так надо - ограничивай выборку в контроллере а не во вью

Luka
11.06.2017
17:02:44
ну и даже если так надо - ограничивай выборку в контроллере а не во вью
Логику из шаблона забрать, а в шаблоне только фореч?

Андрэ
11.06.2017
17:02:57
Да

Luka
11.06.2017
17:03:55
Ок. Спасибо. Вечером доделаю инструментарий для автопостинг в Инстаграме

Den
11.06.2017
17:27:58
Подскажите реализацию множественной загрузки изображения

Google
Den
11.06.2017
17:28:37
Может есть готовый плагин, js скрипты. Требуется для админки, загрузка изображений товара

dasknix
12.06.2017
01:39:50
есть кто живой?

Юрий
12.06.2017
01:43:18
а что

dasknix
12.06.2017
01:46:08
есть вопрос по БД уровня старшеклассника, видимо, несовместимый с моей головой

Юрий
12.06.2017
01:48:14
проще написать его тут

dasknix
12.06.2017
01:49:31
дабы ничего не отвлекало я вырезал или опустил ненужную информацию

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

Admin
ERROR: S client not available

dasknix
12.06.2017
01:49:31
а ещё когда покупатель кладёт в корзину товар или оплачивает заказ - часть булавок висит на складе, а часть в корзине/заказе

я сделал "набор". это product_set

когда одного товара сколько-то штук. сделал через junction table, как видно

это которая __map_2

вопрос - можно ли лучше, чем есть сейчас?

меня смущает как минимум то, что в справочной таблице (junction table) пришлось добавить поле product_qty

нормальная ли это практика и что в целом можете сказать о данном решении?

заранее спасибо.

Юрий
12.06.2017
01:56:25
или я не так понимаю условие, или я не вижу надобности в промужеточной таблице. количества товаров в таблице с ними я бы и хранил. не вижу сложности в том чтобы учитывать таблицу товаров как "склад" и при оформлении заказа оттуда делать вычет заказанного числа товаров. если какие-то позиции могут покупаться только по пять штук например - за это отвечает не логика корзина-склад, а витрина-корзина, там можно ввести и наборы, где будет прописано каких товаров и сколько позиций входит в набор. но только для того чтобы наполнить корзину, а при ее процессинге - списать с остатков "склада" (таблицы продуктов)

таким образом из схемы спокойно убираем _map_2, в product добавляем qty, в product_set добавляем позиции для product_id и qty нужных ну и собственно все

dasknix
12.06.2017
01:58:30
мне нравится ход мыслей, перечитываю снова

Юрий
12.06.2017
01:59:57


Google
dasknix
12.06.2017
02:01:01
всё отлично. теперь добавлю условие, которое сразу не описал

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

т.е. мне надо будет добавить промежуточно справ. таблицу между product_set и cart, как и между product_set и order

а это уже то, от чего я с трудом, но ушёл вроде бы

т.к. хочется макс. просто и элегантно, а не через 20 табл. делать

т.е. Вы всё верно написали, спасибо. но это работает только если в корзине или заказе один товар опр. кол-ва. а их может быть сколько угодно, и для каждого несколько штук

Юрий
12.06.2017
02:03:44
я понял. схема это учитывает. product_set #1 product_id: 1, qty: 10 product_id: 2, qty: 5 product_set #2 product_id: 4, qty: 2 product_id: 8, qty: 6 в корзине у нас 2 продакт сета - 1 и 2. когда делаем заказ со склада списываем следующее кол-во позиций: product_id: 1 - 10 штук product_id: 2 - 5 штук product_id: 4 - 2 штуки product_id: 8 - 6 штук

у product_set id не уникальный

может быть 10 позиций для первого сета прописано

каждая позиция - product_id в нужном кол-ве

dasknix
12.06.2017
02:05:06
про то, чтобы сделать таблицу product стоковой - да. а вот как реализовано что у нас в корзине 2 сета?

Юрий
12.06.2017
02:05:59
как понимаю в корзину добавляются не товары а готовые сеты. значит мы просто на сайте выбрали сет 1 (в котором такие-то позиции в таком-то кол-ве) и сет 2 (в котором такие-то позиции в таком-то кол-ве)

dasknix
12.06.2017
02:06:38
корзине _присвоен_ один сет

только так. там отношение 1:1

не может же быть в корзине.. аа ну хотя, ну тогда придётся между корзиной и юзером делать junction

понимаешь тут так и так выходит что надо в промежуток втыкать справочную таблицу, просто мы её сдвигаем в более дальнюю связь))

Юрий
12.06.2017
02:09:16
кхм. я теперь понял что надо. я тогда опишу как это сделано нормально в одном магазине. у клиента может быть много корзин. каждая корзина - в твоем представлении это "сет". при процессинге корзины - она списывается с остатков и переходит в ордеры.

то есть я бы расширил таблицу корзины и избавился и от таблице сетов и от map

dasknix
12.06.2017
02:11:26
уу тогда выходит если она в ордеры переходит то ордеров у клиента тоже должно быть много

Юрий
12.06.2017
02:11:40
ну дык. есть же история заказов

Страница 508 из 2014