@laravel_pro

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

Иначе тебе придется для каждой таблицы, которую джоинишь создавать алиас и для каждой прописывать что делитед_ат должен быть налл

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

т.е. нужно принудительно просить его withTrashed() чтобы получить все записи

Google
Anton
09.01.2018
16:41:13
по идее элоквент сам это фильтрует если через него запрос строишь
Только что же написал - что если делаешь join, на join таблицу не накладывается

Юрий
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
Есть какой нибудь пакет или решение, реализующее подключение к разным бд ,чтобы не писать в каждой модели $connection ?
а как ты себе это число логически представляешь? в условном конфиге указывать, какие модели используют какое соединение?

Google
Tim
09.01.2018
17:05:44
Александр
09.01.2018
17:15:17
Паттерн Репозиторий тебе в помощь

или при запросе с определенного субдомена в сервис провайдере реализуешь создание или указание дефолтового коннекшена

Александр
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
куки дешифровать может. авторизаию настраивать может. сессию стартовать может. выбирать к какой бд конектиться нет. логика где?
Безусловно может, в итоге все равно делается как удобнее и понятнее разработчику) но все, что описано тобой связано HTTP запросами, уровень взаимодействия с данными - это другой слой

Anton
09.01.2018
17:26:36
Чуваки, тогда еще вопрос, а как has к has привзяать?

ну вот есть основная модель, у нее есть связть и у той есть связ

я чет подтупляю...

Google
Anton
09.01.2018
17:27:24
ну типа join же можно один, а потом второй

все связи belongsTo

ну то есть Model1 -> belongsTo -> Model2 -> belongsTo -> Model3

Александр
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
т.е выбор конекта в зависимости от домена не связано с http запросом
Я понял о чем ты, ты имеешь ввиду выставление в миддл Config::set('database.default', 'subdomain_name') - это абсолютно норм

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

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

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

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
есть кнопочка G на скрине. видишь? нажми ее
вау, не знал, спасибо, но я и без этой кнопочки гуглил уже, но всеравно спасибо.

tochka
10.01.2018
07:57:36
В файле config/databases.php у тебя имя второго подключения - mysql2, а ты пытаешься зацепиться к users_docb.
я извиняюсь за глупый вопрос, но где именно я не правильно указываю имя подключения?

Andrey
10.01.2018
07:58:41
я извиняюсь за глупый вопрос, но где именно я не правильно указываю имя подключения?
Ты как запросы к базе выполняешь? Через фасад DB или через Eloquent? В первом случае имя подключения указывается так: DB::connection('mysql2')->.... Во втором указывается внутри файла модели protected $connection = 'mysql2';

Стоп. Тупанул.

Google
tochka
10.01.2018
08:02:01
Ты как запросы к базе выполняешь? Через фасад DB или через Eloquent? В первом случае имя подключения указывается так: DB::connection('mysql2')->.... Во втором указывается внутри файла модели protected $connection = 'mysql2';
через DB все я разобрался у меня https://s3.amazonaws.com/scrstorage/134220k32up829y90.png валидатор был через название базы.таблица, а нужно было так как на скрине

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

через DB все я разобрался у меня https://s3.amazonaws.com/scrstorage/134220k32up829y90.png валидатор был через название базы.таблица, а нужно было так как на скрине
При работе с несколькими базами да, надо указывать имя подключения. Иначе все запросы идут в базу "по-умолчанию".

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
Но опять же - это личное оценочное суждение :). Каждый в праве его принимать или нет :)
Да, для нагруженных запросов не очень Все чаще в последнее время использую доктрину

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

Ну наверное тяжёлых :)

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

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

Anton
10.01.2018
09:30:48
Тяжелых в плане fetch на уровне sql и в плане самого поиска)
Не... Смотри тут фишка в том, что сначала выполняются все действия, а потом уже к каждому ряду выполняется этот запрос

Александр
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
Я понимаю в чем суть вложенных запросов, зависящих от внешнего query)
Для меня немного сюрпризом стало что это после запроса внешнего происходить в отличии от обычного подзапроса, который первым выполняется.

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
Ребят а можно ли\используете ли вы в laravel 5.5 LaravelCollective ? Не могу понять они сделали релиз для 5.5 или нет?
ну так ты поставь и попробуй. У меня формы оттуда, но они в составе другого пакета

tochka
10.01.2018
10:39:10
ну так ты поставь и попробуй. У меня формы оттуда, но они в составе другого пакета
может кто-то использует, поставить я всегда успею, а вот разбираться с ошибками просто ставя пакеты как бы не очень хочется

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

tochka
10.01.2018
11:02:40
я юзаю laravel-form-builder, он юзает laravelcollective/html .Laravel 5.5 полет нормальный )
Спасибо большое за совет, попробую. Та просто переписываю заново приложение, и после набитых шишек с предыдущей версией осторожничаю)))

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
с explain
можно точнее?

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

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

В базе записей меньше сотни наверно.

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

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