
dev
26.06.2018
09:05:40
сделай табличку файлы
с содержанием user_id, topic_id, post_id, created_at, + вспомогательные для файла
Когда чел заходит в топик - вытащить все его файлы у которых post_id = null, topic_id=текущий топик
в других темах соотвественно не будет.
Как пост создается - пометить все файлы от него и проставить post_id
раз в N времени удалять записи и физ файлы у которых post_id=null и дата создания < чего-то
как варик

FUTURICO
26.06.2018
09:06:27
Либо стейт)

Kaido
26.06.2018
09:08:00

Google

Nik
26.06.2018
09:08:01

Kaido
26.06.2018
09:08:08

Nik
26.06.2018
09:11:17
полюбому кто-то уже делал подобное
есть крч форум, есть посты
при создании поста нужно сделать возможность прикрепления файлов
как бы все работает норм, кроме одного: айдишники загруженных файлов я сохраняю в сессии (сразу прикрепить их к посту я не могу, т.к. сам пост еще не создан), все опять же норм, кроме одного момента - как мне определить когда человек ушел со страницы с формой создания поста, чтобы удалить список загруженных файлов из сессии? потому что создавал пост в одной теме, потом зашел в другую тему и решил там создать пост, в итоге в форме уже вижу загруженные файлы, потому что остались загруженные с предыдущего раза в сессии
никак, делай им промежуточный флаг, и если он не обновился за N времени, просто коси файлы

Влад
26.06.2018
09:35:10
@salavatov, redirect_uri сделай страницу на Vue, там собери все GET параметры и отправь на /api/auth


Виктор
26.06.2018
09:35:36
Есть идеи как можно реализовать следующий функционал.
Есть 3 микросервиса, которые работают по API друг с другом. 1й сервис - это бот вк, второй - основное приложение и сайт, третий - проект для работы с изображениями.
Пользователь отправляет запрос боту или из сайта. Основное приложение принимает входящий запрос по одному из API-роутов, обрабатывает данные, создает запись в базе и отправляет все это в rabbitMQ. Третий сервис слушает рэбит и, когда там что-то появляется, обрабатывает изображение и шлет основному приложению по API, что работа завершена, можно отдавать результат.
С ботом проблем нет, поскольку известен ID пользователя, которому отправить сообщение о завершенной работе. Проблема с пользователем на сайте, его нужно редиректнуть, но, поскольку никакой инфы о юзере нету, он может быть даже неавторизован, непонятно, как понять какого конкретно юзера редиректить и как это реализовать технически

Евгений
26.06.2018
09:35:53
Не понял тебя значит)

Женя
26.06.2018
09:45:47
Привет всем, скажите, лучше возвращать json респонс для api с ключем success или без?

Евгений
26.06.2018
09:47:25
Я делаю с
Но мне кажется это совсем не обязательно

Женя
26.06.2018
09:48:03
а вот error мастхев, правильно?

¯\_(ツ)_/¯
26.06.2018
09:50:59
'email' => 'required|email|max:255|unique:users,email,'.$id как прописать условие чтоб не проверяло уникальность для текущего пользователя?

F01134H
26.06.2018
09:53:45
Я наверное единственный, кого больше всего в ларке бесит авторизация?

Maksim (Ellrion)
26.06.2018
09:53:48
а вот error мастхев, правильно?
стандарта для джейсон ответов нет. вернее есть несколько попыток его создать но в "стандарт дефакто" не один так и не вылился.

Google

F01134H
26.06.2018
09:53:55
которая из коробки
нахрен они кусок бизнес логики пихают в фреймворк

Maksim (Ellrion)
26.06.2018
09:54:21
аминь брат
да еще и как пихают. по десятку трейтов, с мини методами (типо что бы расширять было удобно)
лучше бы это поместили в laravel\laravel пакет. и команду на делит скафолд дали или просто две версии было блупринт приложений

F01134H
26.06.2018
09:55:48
вот серьезно, это единственный минус ларки. Мне то типо пофиг, но новички то ведутся. Это прям yii-way

f4rt~
26.06.2018
09:57:06

F01134H
26.06.2018
09:57:18
не?

f4rt~
26.06.2018
09:57:30
и чо?
она расширяема как хочешь
никто не обязывает тебя её использовать

F01134H
26.06.2018
09:57:57
дак я про это выше сказал
я ее и не юзаю, у нас вообще авторизация в отдельном сервисе
на сайлексе вроде

Andrey
26.06.2018
10:22:28
да, дублирует то, что слева
В доке написано лишь общее правило "Каждый элемент должен быть..."
https://laravel.com/docs/5.5/validation#validating-arrays

Андрей
26.06.2018
10:26:06
Всем привет. Может кто подскажет. При загрузке .csv файла на сервер через Storage::putFile laravel генерит ему имя и меняет ему расширение на .xlsx, можно как то отрубить смену расширения?

Andrey
26.06.2018
10:27:06

Андрей
26.06.2018
10:27:24
если не передавать имя. То он сам генерит

Andrey
26.06.2018
10:29:01
В таком случае - передавай

Google

Андрей
26.06.2018
10:30:08
спасибо)

Илья
26.06.2018
10:43:31

Dmitriy
26.06.2018
10:44:47

F01134H
26.06.2018
10:45:13
нет
элоквент это отдельная штука
а очереди - просто надстройка над редисом, в моем случае
ни очереди ни элоквент не содержат бизнес логики, это просто прослойки для взаимодействия с какими-либо службами

Kaido
26.06.2018
10:52:47

Сергей
26.06.2018
10:54:25
Парни, возможно вопрос не по теме, но всё же.
я тут пол дня запускаю supervisor, в итоге запустил, но очереди не отрабатывают, так и висят в таблице, а в логах вот такая ошибка
local.ERROR: Error executing "ReceiveMessage" on "https://sqs.us-east-1.amazonaws.com/your-account-id/high"; AWS HTTP error: Client error: `POST https://sqs.us-east-1.amazonaws.com/your-account-id/high resulted in a 403 Forbidden`
что это вообще может означать?)

Daniel
26.06.2018
10:59:47
если sqs в west, к примеру, а ты стучишься в east - тот ответ закономерен, 403

Сергей
26.06.2018
11:01:19
в какой локации у тебя sqs?
а как это узнать? и где это настраивается? я не настраивал, просто поставил супервизор, конфиг, запустил и всё

Daniel
26.06.2018
11:02:45
я просто загуглил твою проблему и эт первый попавшийся ответ (он же единственный), и там говорится именно про локации
"I found out the issue, IAM policy that i was using has access to only east region where as my sqs was on west. So before using sqs from lambda make sure you have correct policy attached."
звучит правдоподобно, а уж как это настраивается - хз. Я пока что пользовался только теми очередями, которые предлагает laravel в связке с db

Сергей
26.06.2018
11:05:43
Я что-то не доганяю, какие локации и куда я стучусь, если это простая очередь в БД

Игорь
26.06.2018
11:05:56

Oleg
26.06.2018
11:18:47
А амазон

Google

Сергей
26.06.2018
11:19:33
я по своему не знанию просто скопипастил конфиг из доки
как заюзать БД драйвер?

Alexander
26.06.2018
11:20:50
QUEUE_DRIVER

Сергей
26.06.2018
11:21:42
Да, спасибо! это было больно, но я этот урок запомню надолго

Alexander
26.06.2018
11:22:02
Подскажите как на стороне Laravel подписаться на публикации в redis?
ну т.е где именно это реализовать?
Какой компонент лары может выполняться долго и сидеть в прослушке?

Admin
ERROR: S client not available

Maksim (Ellrion)
26.06.2018
11:24:29

¯\_(ツ)_/¯
26.06.2018
11:33:26


Alexander
26.06.2018
11:36:04
а как можно в Redis подписать два приложения друг на друга?
Например у меня socket io чаты реализованы на Nodejs, и основное приложение не Laravel.
На стороне Nodejs я подписываюсь на канал 'fromLaravel' и получаю из него публикации. Он их ловит, все ок.
Но бывает когда надо отправить из Nodejs какую-то инфу в лару, и я хотел бы сделать это также.
Завел вторую переменную redisPublisher = new Redis();
и через него отправляю в Laravel.
На стороне Laravel подписался на канал 'fromNodejs' получаю из него то, что шлет нода, но в чем проблема - не могу отправить из него. Падает с ссобщением
ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context
Видимо проблема в том, что я пытаюсь это сделать прямо из слушателя. Но как управлять этим?
Redis::subscribe(['fromNodejs'], function ($message) {
echo $message . "\n";
Redis::publish('fromLaravel', json_encode(['test' => 'ok']));
// event(new \App\Events\IsReadNotifications(\App\User::first()));
});


Maksim (Ellrion)
26.06.2018
12:03:37

Alexander
26.06.2018
12:03:44
Ты уверен что используешь не один и тот же редис инстанс для слушателя и паблишера

Maksim (Ellrion)
26.06.2018
12:04:00
именно это он и делает

Alexander
26.06.2018
12:05:18

Maksim (Ellrion)
26.06.2018
12:05:57
да, только лучше всё же пусть паблишинг будет дефолтный а сабскрайб дополнительный

Google

Maksim (Ellrion)
26.06.2018
12:06:34
потому как для лары именно паблишинг более дефолтное поведение
но на самом деле это не так важно конечно
потом соответственно Redis::connection('...')-> нужно будет юзать

Alexander
26.06.2018
12:08:25
А Events которые я создаю, они же через default подключение отправляют публикации?

Maksim (Ellrion)
26.06.2018
12:10:32
да

Alexander
26.06.2018
12:10:45
Можно как-то переопределить это?

Maksim (Ellrion)
26.06.2018
12:11:31
в конфиге броадкаста

Alexander
26.06.2018
12:11:40
понял спасибо)

Maksim (Ellrion)
26.06.2018
12:12:39
в /config/broadcasting.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],

Alexander
26.06.2018
12:12:49
Уже нашел, спасибо!

Maksim (Ellrion)
26.06.2018
12:18:09

Alexander
26.06.2018
12:18:45
кэш какой-то мб?

Maksim (Ellrion)
26.06.2018
12:26:09
ну сделай сброс кэша конфигов для верности

Alexander
26.06.2018
12:27:18
php artisan config:cache

Maksim (Ellrion)
26.06.2018
12:28:06