
Александр
09.01.2018
16:38:58
по хорошему вместо джоин использовать встренные элоквент механизмы, а именно релейшены
whereHas(имя связи, замыкание с условием если необходимо), в данном случае для связанной сущности будет применено правило SoftDeleted если трейт присутсвует в модели
Иначе тебе придется для каждой таблицы, которую джоинишь создавать алиас и для каждой прописывать что делитед_ат должен быть налл

Юрий
09.01.2018
16:40:34
по идее элоквент сам это фильтрует если через него запрос строишь
т.е. нужно принудительно просить его withTrashed() чтобы получить все записи

Google

Anton
09.01.2018
16:41:13

Юрий
09.01.2018
16:41:50
ну сделай связи и по связям джоини, как Саша написал выше

Александр
09.01.2018
16:42:19
https://laravel.com/docs/5.4/eloquent-relationships#querying-relations

Anton
09.01.2018
16:42:22
как не понимаю что такое джойнить по связям, я знаю что такое whereHas

Юрий
09.01.2018
16:42:39
ну и вот)

Александр
09.01.2018
16:42:40
мануал в помощь

Anton
09.01.2018
16:42:41
но там вообще нихера не просто..
плюс whereHas - это вроде как подзапрос
Очень уж их не хочется
но мысль понял

Александр
09.01.2018
16:44:15
Это смысл элоквента, если хочешь работать на более низком уровне придется аккуратно руками добавлять условия на делитед ат

Tim
09.01.2018
17:02:09
Есть какой нибудь пакет или решение, реализующее подключение к разным бд ,чтобы не писать в каждой модели $connection ?

Oscar
09.01.2018
17:04:31

Google

Tim
09.01.2018
17:05:44

Александр
09.01.2018
17:15:17
Паттерн Репозиторий тебе в помощь
или при запросе с определенного субдомена в сервис провайдере реализуешь создание или указание дефолтового коннекшена

Maksim (Ellrion)
09.01.2018
17:17:02

Александр
09.01.2018
17:17:37
Мидлваре предназначен для некоторых других вещей
если нужны конкретные реализации - это сервис провайдеры, но если без холи вара, то как удобнее

Maksim (Ellrion)
09.01.2018
17:18:32
для каких? почему конфигурация не подподает под это?

Александр
09.01.2018
17:18:48
https://laravel.com/docs/5.4/middleware#introduction

Maksim (Ellrion)
09.01.2018
17:18:56
и?

Александр
09.01.2018
17:19:05
Middleware provide a convenient mechanism for filtering HTTP requests entering your application.
фильтрация, не более
плюс авторизация или разрешение прав
вся логика приложения и инфраструктура - это другой слой логики приложения

Maksim (Ellrion)
09.01.2018
17:21:13
фильтрация, не более
куки дешифровать может.
авторизаию настраивать может.
сессию стартовать может.
выбирать к какой бд конектиться нет.
логика где?

Valera
09.01.2018
17:22:30
Привет
Есть хелпер getMetaTitle($text), который получает, обрабатывает и возвращает строку
Он в шаблоне app.blade.php
Как ему в качестве аргумента можно передать @yield('title') ?

Александр
09.01.2018
17:26:10

Anton
09.01.2018
17:26:36
Чуваки, тогда еще вопрос, а как has к has привзяать?
ну вот есть основная модель, у нее есть связть и у той есть связ
я чет подтупляю...

Google

Anton
09.01.2018
17:27:24
ну типа join же можно один, а потом второй
все связи belongsTo
ну то есть Model1 -> belongsTo -> Model2 -> belongsTo -> Model3

Maksim (Ellrion)
09.01.2018
17:29:14

Александр
09.01.2018
17:29:25
уровень вложенности, никто не мешает спуститься уровнем ниже
Model1::query()->whereHas('relation1', function($query) {
$query->whereHas('relation2', function() {
})
})

Anton
09.01.2018
17:30:48
ну то есть первый завернуть в whereHas() - чтобы упоминание второго в замыкании сделать
мутновато... щас попробую и посмотрю что там за SQL получится

Александр
09.01.2018
17:49:30
Я имел ввиду создание непосредственного объекта коннекшена и дальнейшая его передача в контроллер или в твой репозиторий через DI

Tim
09.01.2018
19:38:23
Можно ли как нибудь сеттерить файлы конфига , чтобы значения оставались в файле?
Config::set() не меняет в самом файле конфига

Юрий
09.01.2018
19:40:45

Anton ?
09.01.2018
23:30:50
Эм, а что в ларе (5.5) больше нельзя делать опции обязательными?
$this->addOption('host', 'H', InputOption::VALUE_REQUIRED, '');
если пропускаю опцию, то он не ругается что она отсутствует =\ т.е. константа есть, а конктракт не выполняется.....

Саша
10.01.2018
00:16:06

tochka
10.01.2018
07:40:16
Всем привет. Подскажите пожалуйста. Хочу сделать несколько баз данных в приложении. Все сделал по статьям (которых в интернете множество), но столкнулся с такой проблемой https://s3.amazonaws.com/scrstorage/at1s3e281618y79692.png
.env https://s3.amazonaws.com/scrstorage/d1328l828122312.png
config/databases.php
https://s3.amazonaws.com/scrstorage/mi13293068771ud0em0.png
никак не могу понять в чем дело. если кто-то сталкивался, буду рад совету.

∀RTUR
10.01.2018
07:44:26
есть кнопочка G на скрине. видишь? нажми ее

tochka
10.01.2018
07:48:51

Andrey
10.01.2018
07:49:11

tochka
10.01.2018
07:57:36

Andrey
10.01.2018
07:58:41
Стоп. Тупанул.

Google

tochka
10.01.2018
08:02:01

Andrey
10.01.2018
08:02:13
У тебя база данных users_docb существует?

tochka
10.01.2018
08:04:29

Andrey
10.01.2018
08:05:10
??

Anton
10.01.2018
09:20:17
Вчера говорили про has и whereHas, я полез читать в глубь. Они формируют запросы с exists, который выполняется на каждую строчку найденного рекрдсета. И если у тебя лимитированная выборка - это ок, а если нет (ну счетчик какой считаешь), то лучше не использовать....

Admin
ERROR: S client not available

Anton
10.01.2018
09:22:21
Тогда лучше старый добрый join и не забывать where deleted_at is null добавлять.
Но опять же - это личное оценочное суждение :). Каждый в праве его принимать или нет :)

Александр
10.01.2018
09:24:52

Dmitry
10.01.2018
09:25:25

Anton
10.01.2018
09:25:49
Там даже не нагруженный запрос, а когда без лимитов идет
Ну наверное тяжёлых :)

Александр
10.01.2018
09:27:32
Тяжелых в плане fetch на уровне sql и в плане самого поиска)

Dmitry
10.01.2018
09:28:16

Александр
10.01.2018
09:30:15
а доктрина тут причем?
В плане контроля поведения запросов, работы со связями показалась гораздо эффективнее, но up to u)

Anton
10.01.2018
09:30:48

Александр
10.01.2018
09:31:45
Я понимаю в чем суть вложенных запросов, зависящих от внешнего query)

Anton
10.01.2018
09:31:46
На каких нить агрегатных запросах я бы его не юзал, а на простых, да ещё и с лимитами - запросто. Простых в смысле не агрегатных, даже со сложными условиями

Dmitry
10.01.2018
09:31:49

Google

Anton
10.01.2018
09:33:02

Dmitry
10.01.2018
09:38:49

Anton
10.01.2018
09:40:33
Все так, просто я не работал до этого с exists
Пошел читать и удивился что подзапроса могут как до, таким после выполняться...

tochka
10.01.2018
10:35:44
Ребят а можно ли\используете ли вы в laravel 5.5 LaravelCollective ? Не могу понять они сделали релиз для 5.5 или нет?

Dmitry
10.01.2018
10:37:28

tochka
10.01.2018
10:39:10

Dmitry
10.01.2018
10:57:41
? я смотрю ты очень осторожен

tochka
10.01.2018
11:02:40

Alex
10.01.2018
11:54:46
Такой вопрос. Разрабатываю локально на не самом шустром компе, проект работает сносно (api отдает за 0.5-1.5с), заливаю на тестовый выделенный сервер, там проект отдает такой же api за 5с. Единственное отличие это локально - Mysql, на выделенном - Postgre.
С чего начать разбирательство?

Дмитрий
10.01.2018
11:55:10
с explain

Alex
10.01.2018
11:55:28

Дмитрий
10.01.2018
11:55:52
запрос тяжелый скорее всего

Alex
10.01.2018
11:58:42
запрос тяжелый скорее всего
Не думаю. Выборка из таблицы Model::select(), запись в сессию, запуск процедуры выборки данных из сессии и возврат сессии в виде json объекта.
В базе записей меньше сотни наверно.

Дмитрий
10.01.2018
11:59:14
тогда профилируй реквест