These are chat archives for LaravelRUS/chat

28th
Nov 2016
Artyom Mezin
@Sogl
Nov 28 2016 04:06
Всем привет! Подскажите, каким образом можно перевести ошибки валидатора? И вообще как Ларку перевести полностью на русский? Погуглив, наткнулся на такой пакет: https://github.com/caouecs/Laravel-lang
KarmaBot
@KarmaBot
Nov 28 2016 04:06
@Sogl, привет =)
Artyom Mezin
@Sogl
Nov 28 2016 04:14
@Dualse Почитал... только в папке resourses\lang\ есть только en папка, а русской нету
Alexander
@Dualse
Nov 28 2016 04:18
@Sogl Создай. Скопируй из en нужные файлы для перевода и пиши их) Насколько понял, то тебя только validation.php интересует. Кстати, в интернете уже есть переведенные файлы, только не помню, где лежат.
Artyom Mezin
@Sogl
Nov 28 2016 04:21
@Dualse ну вот в том пакете нашел: https://github.com/caouecs/Laravel-lang/blob/master/src/ru/validation.php
Alexander
@Dualse
Nov 28 2016 04:22
@Sogl Да, да. Извиняюсь. Не посмотрел, что внутри лежит) Пойду налью кофе
Rahim
@happyhaha
Nov 28 2016 04:24
Ребята всем привет!!! Продуктивного дня!
KarmaBot
@KarmaBot
Nov 28 2016 04:24
Не узнал тебя, @happyhaha. Богатым будешь :)
Artyom Mezin
@Sogl
Nov 28 2016 04:25
@Dualse В любом случае спасибо за наводку)) Тут выходит либо весь этот пакет поставить (упадет аж 53 языка в проект, правда), зато проще с обновлением через composer update, либо вручную каждый раз копировать изменения )
блин, чет кармабот не сработал :worried:
@Dualse спасибо
KarmaBot
@KarmaBot
Nov 28 2016 04:26
Спасибо (+1) для @Dualse принято! Текущая карма +111.
Alexander
@Dualse
Nov 28 2016 04:26
@Sogl Потому-что в середине сообщения. Он вроде как только в начале и конце считает.
Artyom Mezin
@Sogl
Nov 28 2016 04:31
@Dualse похоже, парсить все сообщение накладно =)
Rahim
@happyhaha
Nov 28 2016 04:35
@Dualse Ребят, @Sogl привет. Я хочу поинтересоваться у вас, вот например вы начинаете писать проект. У вас есть две модели которые соединяются hasMany и belongsTo, модель Parent имеет много Child. Вот на странице создания Parent вы создали инпуты для Child, а потом в экшне отлавлиаете их и сохраняете через обсервер в методе saved(). На этом вроде все. Но через некоторое время, вы начинаете новый проект. Вы снова все это каждый раз пишете, одно и тоже? Или как-то инкапсулирируете такую "однотипную" логику?
Alexander
@Dualse
Nov 28 2016 04:36
@happyhaha Что значит одно и тоже? Описываем связи?)
Rahim
@happyhaha
Nov 28 2016 04:38
@Dualse Описать связь в две строчки(это не проблема), я имею в виду методы сохранения, обработки(если таковые имеются...
@Dualse как же бесит одно и тоже делать, но не знаю как это все хозяиство отделить таким образом чтобы оно было МАКСИМАЛЬНО НЕпривязанным, чтобы мог "как-то подключить(пока не знаю как)" и иметь такой же функционал.
Alexander
@Dualse
Nov 28 2016 04:40
@happyhaha Ну смотри. Вот написал ты для сайта меню. Подтянул там Nested Sets, добавил фронта, чтобы drag'n'drop'ом таскать пункты, добавил хэлпер (прим. пагинация). По идеи ты больше чем уверен, что у тебя данный функционал будет повторяться . Так вот, это все надо заворачивать в пакет)
Rahim
@happyhaha
Nov 28 2016 04:42
@Dualse хм..то есть заворачивая в пакет я научусь инкапсулировать некую логику. верно?
Alexander
@Dualse
Nov 28 2016 04:42
@happyhaha Да. Вплоть до фронта.
Rahim
@happyhaha
Nov 28 2016 04:43
@Dualse твой пример он реально подходит под описание Пакета.
@Dualse по идее неважно какова масшабность функционала , гглавное если я буду ее использовать в будущем, то мне нужно оборачивать ее в пакет
Alexander
@Dualse
Nov 28 2016 04:44
@happyhaha Можешь даже 1 контроллер в пакет положить и таскать его из проекта в проект
@happyhaha Ага
Rahim
@happyhaha
Nov 28 2016 04:44
@Dualse охх...чувствую прилив кайфа..))неужели я буду тратить меньше времени на рутиную работу
Alexander
@Dualse
Nov 28 2016 04:46
@happyhaha Использование новых фич либо их внедрение - дело приятное
Rahim
@happyhaha
Nov 28 2016 04:47
@Dualse самый дотошный пример для меня это загрузка картинок...вот я написал для одной модели, автоматически удаляется при удалении модели, генерирует имя, и много мелких фич, и весь этот код, по паттерну MVC, и в модели, и в контроллере. Теперь когда начинаю новую, модель максимум я могу скопировать, тот же функционал(если прям одно и тоже) а если нет, то дорабатываю, и так 3-4 модели. Трачу неимоверное количество времени, а потом когда приходит время нового проекта, у меня аж пукан бомбит от того что нужно делать то же самое... :D
ну реализация в модели, а вызов методов из контроллера в экшне destroy()
Alexander
@Dualse
Nov 28 2016 05:12

хотя... там же только бэк
ну тогда может и найдете кого...

@greabock Ну если только джун. Я вот летом писал подобное, только без "оплаты" и "документов" для сетевого маркетинга. Даже у нас в Казахстане за подобное чек был 1700$.

Artyom Mezin
@Sogl
Nov 28 2016 05:19
Ребят, я тут встретил вот такую форму записи: app('request') и app('validator'). Как это работает? Я всегда с этими вещами работаю через именованные переменные
Alexander
@Dualse
Nov 28 2016 05:23

@Dualse самый дотошный пример для меня это загрузка картинок...вот я написал для одной модели, автоматически удаляется при удалении модели, генерирует имя, и много мелких фич, и весь этот код....

@happyhaha вот выкатишь в опен соурс, может кому-то пригодятся твои наработки. Сделаешь свой вклад в развитие комьюните)

Rahim
@happyhaha
Nov 28 2016 05:25
@Dualse Да! обязательно! :) +1:
:+1:
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:02
@happyhaha А ещё помогает формирование логики отдельно от MVC. CommandBus там и всё такое. Тогда Можно только логику таскать, которая ну вот вообще не зависит от того, что у тебя в приложении...
widg
@widg
Nov 28 2016 06:13
Доброе утро! Как быстро очистить таблицу?
Rahim
@happyhaha
Nov 28 2016 06:14
@smgladkovskiy блин! звучит круто, можешь рассказать подробнее пожалуйста?
@widg Хай, попробуй MyModel::truncate();
widg
@widg
Nov 28 2016 06:17
Route::get('del', function(){
    return App\Url::truncate();
});
несработало
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:17
@happyhaha Ларакасты смотреть по Command Bus, а так же у @greabock было описание подхода CQRS.
Rahim
@happyhaha
Nov 28 2016 06:18
@smgladkovskiy долго ломал голову( и сейчас тоже) мне хочется добиться того что ты описал выше. Я знаю как реализовать некий функционал, но так как его же буду использовать в другом проекте, я хочу его изолировать в некий отдельный контейнер...в либу..., чтобы безболезненно внедрять..
widg
@widg
Nov 28 2016 06:19
@happyhaha сработало, спасибо
KarmaBot
@KarmaBot
Nov 28 2016 06:19
Спасибо (+1) для @happyhaha принято! Текущая карма +1.
Rahim
@happyhaha
Nov 28 2016 06:19
@widg :+1:
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:19
@happyhaha, любые действия выносишь в команды (command) (если идёт изменение/создание объекта), либо в запросы (query) (если получение).
Далее, команды и запросы кладёшь в доменную структуру.
Rahim
@happyhaha
Nov 28 2016 06:20
@smgladkovskiy слышу впервые об этом. Все понял, не буду докучать вопросами, пойду гуглить эту тему! =)
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:20
Она живёт независимо от application и, в принципе, переносима как между проектами, так и, в пределе, между платформами.
Rahim
@happyhaha
Nov 28 2016 06:21
@smgladkovskiy а подожди, еще один момент
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:21
короче, погугли CQRS, CommandBus, DDD
Rahim
@happyhaha
Nov 28 2016 06:21
@smgladkovskiy аа ладно все ок)
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:21
в связке с laravel
Rahim
@happyhaha
Nov 28 2016 06:21
@smgladkovskiy Спасибо дружище!
KarmaBot
@KarmaBot
Nov 28 2016 06:21
Спасибо (+1) для @smgladkovskiy принято! Текущая карма +10.
Sergey Gladkovskiy
@smgladkovskiy
Nov 28 2016 06:21
Обращайся!
Soprun Vladislav
@vlsoprun
Nov 28 2016 07:21
Всем бобра!
KarmaBot
@KarmaBot
Nov 28 2016 07:21
@vlsoprun, здравствуй.
devweb99
@devweb99
Nov 28 2016 07:34
тут есть кто знает sleeping owl ?
ато в той теме все молчат
Alexander
@Dualse
Nov 28 2016 07:36
@devweb99 Если там молчат, то и тут никто не ответит)
cleargoal
@cleargoal
Nov 28 2016 07:50
@greabock спасибо за коммент!
KarmaBot
@KarmaBot
Nov 28 2016 07:50
Спасибо (+1) для @greabock принято! Текущая карма +470.
JhaoDa
@jhaoda
Nov 28 2016 07:58
@Sogl для понимания записи типа app('request') надо почитать про контейнер в доке
JhaoDa
@jhaoda
Nov 28 2016 08:11
Ну и можно открыть исходник хелпера app, это не больно и бесплатно
jonnykey
@jonnykey
Nov 28 2016 08:14
Привет всем. Как в планировщике задач вызвать в метод с параметром? $schedule->call('App\Http\Controllers\WorkController@CronRunWSDL')->everyFiveMinutes();
KarmaBot
@KarmaBot
Nov 28 2016 08:14
Приветствую тебя, @jonnykey!
JhaoDa
@jhaoda
Nov 28 2016 08:19
@jonnykey посмотреть список параметров метода call?
@jonnykey впрочем, ты бы сначала из контроллера консольные вещи убрал...
jonnykey
@jonnykey
Nov 28 2016 08:25
вот есть -> public function CronRunWSDL($parameter) вот $parameter как прописать в вышеуказанной строке?
В общем надо сделать чтобы крон каждое утро подгружал кэш веб сервисов (wsdl). Каждый вечер кэш веб сервисов удаляется, а на утро надо подгружать новый кэш с обновленной информацией. Просто первый человек который заходит должен ожидать пока подгрузиться кэш, потом пользоваться системой, а это не удобно. По этому появилось необходимость сделать автоматическую подгрузку кэша, думаю сделать через вызов функций в планировщике либо симулировать crawler-ом действия.
JhaoDa
@jhaoda
Nov 28 2016 08:26
@jonnykey ты посмотрел список параметров,, принимаемых методом call?
@jonnykey зачем ты рассказываешь, что надо сделать?
Вопрос решается элементарно — смотрим на public function call($callback, array $parameters = []), немного думаем. Потом выносим код из контроллера в консольную команду на закуску.
Потом берём себя в руки и заставляем читать документацию.
jonnykey
@jonnykey
Nov 28 2016 08:29
1) читал но так и не понял как в планировщике это устроено
2) Рассказал хочу узнать мнение как способ лучше для такой ситуации
JhaoDa
@jhaoda
Nov 28 2016 08:32
@jonnykey ты правильно решил делать это через планировщик. Но я не понимаю, почему ты решил код для планировщика писать в контроллере
jonnykey
@jonnykey
Nov 28 2016 08:34
@jhaoda , нет, не в планировщике, хочу сделать вызов метода из контролерра
JhaoDa
@jhaoda
Nov 28 2016 08:34
@jonnykey ты вообще читаешь, что я пишу?
jonnykey
@jonnykey
Nov 28 2016 08:35
он уже написан
JhaoDa
@jhaoda
Nov 28 2016 08:35
@jonnykey ещё раз, сосредоточься: почему ты пишешь код в контроллере, если он будет вызываться из планировщика? Для этого предназначены консольные команды
jonnykey
@jonnykey
Nov 28 2016 08:36
@jhaoda сорри, так это хочу сделать
JhaoDa
@jhaoda
Nov 28 2016 08:36
@jonnykey что «это»?
jonnykey
@jonnykey
Nov 28 2016 08:37
чтобы запускать с консоли определеные методы в контролерре
JhaoDa
@jhaoda
Nov 28 2016 08:37
Ппц...
@jonnykey ты знаешь, что такое консольные команды в ларавел?
sergeypechenyuk
@sergeypechenyuk
Nov 28 2016 08:46
привет всем. Подскажите, пожалуйста, можно ли в Role::exists(...) использовать join?
KarmaBot
@KarmaBot
Nov 28 2016 08:46
@sergeypechenyuk, ну рассказывай. Как жизнь? :)
JhaoDa
@jhaoda
Nov 28 2016 08:46
@sergeypechenyuk в ларавел нет ролей
sergeypechenyuk
@sergeypechenyuk
Nov 28 2016 08:46
ой
Rule
сорри
jonnykey
@jonnykey
Nov 28 2016 08:47
про консольные комманды я знаю, в основном ими и пользуюсь, но пока не ясно как в планировщике использовать
я в замешательстве
JhaoDa
@jhaoda
Nov 28 2016 08:49
@jonnykey тогда в чем проблема перенести код из контроллер в команду?
jonnykey
@jonnykey
Nov 28 2016 08:57
чтобы Вы понимали что надо сделать, тут система, которая показывает большой объем информации, а она подгружается через веб сервисы (WSDL). Информация подгружается из 9 источников (9 вебсервисов) каждый вебсервис хранит кэш на серваке. Для подгрузки кэша из одного источника требуется в среднем около двух минут. Суть заключается в том, чтобы запускать данные методы которые уже написаны чтобы в фоне подгружали кэш со всех источников
JhaoDa
@jhaoda
Nov 28 2016 08:57
@jonnykey ты опять объясняешь, что надо сделать, вместо того, что бы пойти читать про консольные команды
Или ты ждешь, что это за тебя сделают?
jonnykey
@jonnykey
Nov 28 2016 08:58
ок, я почитаю, спасибо ))
KarmaBot
@KarmaBot
Nov 28 2016 08:58
@jonnykey, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
JhaoDa
@jhaoda
Nov 28 2016 08:59
@jonnykey ты же сказал, что читал и знаешь?
jonnykey
@jonnykey
Nov 28 2016 08:59
Ты же мне предлагал, другого выбора нет.
JhaoDa
@jhaoda
Nov 28 2016 09:00
Короче, кругом враньё...
Alexander
@Dualse
Nov 28 2016 10:09
Я вот что-то упустил мысль. @jonnykey ты сказал, что знаешь про консольные команды, потом сказал, что не знаешь. Нафига так делать?
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:27

Привет, пытаюсь сделать вот что

$city = 'London';

$kreditlist = Сredit::with(['cities' => function($q){
       $q->where('name', $city);
 }])->get()->toArray();

Подскажите, плиз, как передать переменную $city в запрос? потому что ее не видит конструктор.

KarmaBot
@KarmaBot
Nov 28 2016 10:27
Приветствую тебя, @chiz-developer!
JhaoDa
@jhaoda
Nov 28 2016 10:28
@chiz-developerесли не секрет, почему Kredit, а не Credit?
@chiz-developer надо пойти и почитать про анонимные функции в РНР
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:29
@jhaoda сорян, то в начале затупил....так и пошло уже
JhaoDa
@jhaoda
Nov 28 2016 10:29
@chiz-developer проблема переименовать? В шторме это делается одним движением
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:30
да это особо сути не меняет)
Mikhail Volkov
@mvsvolkov
Nov 28 2016 10:31
@chiz-developer НИ саглашус сы табой
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:31
так лучше?)
JhaoDa
@jhaoda
Nov 28 2016 10:31
@chiz-developer ты иди уже про анонимки читай
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:31
читаю
Mikhail Volkov
@mvsvolkov
Nov 28 2016 10:32
@chiz-developer Нет) кредитЛист тоже не правильно написан
JhaoDa
@jhaoda
Nov 28 2016 10:33
@chiz-developer только вот возникает вечный вопрос — почему ты сначала не изучил язык, прежде чем браться за ларавел?
Mikhail Volkov
@mvsvolkov
Nov 28 2016 10:34
@chiz-developer "Пример 3 //Наследуем $message" - ответ на твой вопрос.
JhaoDa
@jhaoda
Nov 28 2016 10:34
@mvsvolkov не надо давать явных подсказок, пусть все прочитает, пользы больше
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:37
@mvsvolkov спасибо, уже нашел
KarmaBot
@KarmaBot
Nov 28 2016 10:37
Спасибо (+1) для @mvsvolkov принято! Текущая карма +3.
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:37
@jhaoda да потому что раньше и без замыканий обходился
Mikhail Volkov
@mvsvolkov
Nov 28 2016 10:37
@jhaoda =(, согласен
JhaoDa
@jhaoda
Nov 28 2016 10:40
@chiz-developer ну ты не сам видишь проблему? Знания о чем-то нет, потому что никогда не требовалось, поэтому ты идешь в чат, где тебя тыкают носом доку. Не возникает сомнений в целесообразности такого пути?
И вас, таких, легион...
Это как «так, оп, меня понесло на мокрой дороге, пойду на форуме спрошу, чо делать»
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:42
@jhaoda та потому что нужно работать и семью кормить чем-то. Вот и приходится сутками ишачить за компом и параллельно разбираться в новом
JhaoDa
@jhaoda
Nov 28 2016 10:43
@chiz-developer так ты не разбираешься, а в лоб на таран идешь. И когда стенка оказалась крепче, спрашиваешь в чате
И вообще, подобные отмазки это именно отмазки...
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:43
@jhaoda я думал, что здесь какая-то особенность laravel, в доке по eloquent почитал, ничего не нашел
JhaoDa
@jhaoda
Nov 28 2016 10:44
@chiz-developer именно, потому что не знаешь ЯЗЫК
Ivan
@Hunternnm
Nov 28 2016 10:44
@chiz-developer а если бы правильно поставил изначально работа/обучение то не было бы таких проблем. А так всю жизнь будешь "догонять" идущий вперед прогресс...
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:44
а складывается такое впечатление, что от того, что ты мне сказал почитать по анонимные функции - с тебя сняло пару баксов)
JhaoDa
@jhaoda
Nov 28 2016 10:44
@chiz-developer учти, за глупые вопросы здесь очень легко получить бан
Ivan
@Hunternnm
Nov 28 2016 10:44
На моей памяти уже человек 20-й с такой отмазкой про семью и еду
JhaoDa
@jhaoda
Nov 28 2016 10:45
@chiz-developer и 40-й с вопросом «как передать переменную в анонимку»
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:45
@jhaoda ну вот скажи честно, тебе было трудно ответить?
JhaoDa
@jhaoda
Nov 28 2016 10:45
@chiz-developer а я не очень хочу тебя банить, ты же с семьей с голоду помрешь тогда...
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:47
@jhaoda забанишь - всегда есть альтернатива - придется на стройку идти)))
Anton Vorontsov
@symbios-zi
Nov 28 2016 10:47
если я делаю у модели softDelete, то метод delete() начинает удалять мягко как тогда удалять полностью запись?
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:48
@symbios-zi ->forceDelete();
Anton Vorontsov
@symbios-zi
Nov 28 2016 10:48
@chiz-developer спасибо
KarmaBot
@KarmaBot
Nov 28 2016 10:48
Спасибо (+1) для @chiz-developer принято! Текущая карма +1.
JhaoDa
@jhaoda
Nov 28 2016 10:49
@symbios-zi Антон, и ты?????
fakefakefake12
@fakefakefake12
Nov 28 2016 10:49
Имя им - легион :D
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:49
blob
Ivan
@Hunternnm
Nov 28 2016 10:50
@symbios-zi и ты, Брут?
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:52
мужики, не будьте такими злыми) всем спасибо за помощь)
Anton Vorontsov
@symbios-zi
Nov 28 2016 10:52
@Hunternnm шта?
JhaoDa
@jhaoda
Nov 28 2016 10:53
@chiz-developer при чем тут злость?
Блин, ну переводчиком если пойти работать без нормального знания языка, то погонят же сразу ссаными тряпками!
А программистом — ок, могут и не заметить. Только когда сайт гребанётся или вскроют его...
Soprun Vladislav
@vlsoprun
Nov 28 2016 10:54
@chiz-developer
$city = 'London';

$kreditlist = Сredit::with(['cities' => function($q) use($city) {
       $q->where('name', $city);
 }])->get()->toArray();
JhaoDa
@jhaoda
Nov 28 2016 10:54
@vlsoprun ну ты капец...
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:54
@vlsoprun спасибо большое! я уже сделал)))
KarmaBot
@KarmaBot
Nov 28 2016 10:54
Спасибо (+1) для @vlsoprun принято! Текущая карма +266.
Soprun Vladislav
@vlsoprun
Nov 28 2016 10:55
@jhaoda Я опять не в тему ляпнул ?! )))
JhaoDa
@jhaoda
Nov 28 2016 10:55
@vlsoprun ты историю чата не читаешь, прежде чем писать?
Игорь Мандыч
@chiz-developer
Nov 28 2016 10:55
@vlsoprun та все норм) спасибо
KarmaBot
@KarmaBot
Nov 28 2016 10:55
Спасибо (+1) для @vlsoprun принято! Текущая карма +267.
JhaoDa
@jhaoda
Nov 28 2016 10:56
А, я понял коварный план...
Soprun Vladislav
@vlsoprun
Nov 28 2016 10:56
@jhaoda увидел что идет разговор, нашел в истории вопрос и только мельком суть беседы...
Косяк :worried:
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 10:57

мужики, не будьте такими злыми) всем спасибо за помощь)

@chiz-developer +1

JhaoDa
@jhaoda
Nov 28 2016 10:57
@vlsoprun ну да, редкое чудо мы наблюдали — человек прочитал и понял
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 10:57
@jhaoda а нукась, построиться, на первый-второй рассчитайсь, кто тут злой?! А?!
JhaoDa
@jhaoda
Nov 28 2016 10:57
@SerafimArts тебе первое место, без сомнений
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 10:58
@jhaoda ну это да, я самого Тейлора забанил
Soprun Vladislav
@vlsoprun
Nov 28 2016 10:58
Я добрый и глупый, мне норм :satisfied:
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 10:58
а то что это он... Вообще
kozlikov
@kozlikov
Nov 28 2016 11:04

Здравствуйте! Уточните, пожалуйста, есть ли возможность как-то реализовать это:

Model::whereIn('id', function ($query) {
            $query->setQuery(Model2::select(['model_id'])->where('test', 10));
        });

Что бы получилось вот так:

SELECT * FROM model WHERE id IN (
            SELECT model_id FROM model2 where test = 10
        );

Но так же стоит помнить, что в callback приходит объект \Illuminate\Database\Query\Builder, т.е. у него нет метода setQuery

KarmaBot
@KarmaBot
Nov 28 2016 11:04
@kozlikov, ну рассказывай. Как жизнь? :)
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:06
@kozlikov я правильно тебя понял select бла ба IN select бла бла ?
Mikhail Volkov
@mvsvolkov
Nov 28 2016 11:07
@kozlikov А у тебя модели между собой связи имеют?
kozlikov
@kozlikov
Nov 28 2016 11:07
@mvsvolkov Нету связей
@vlsoprun Да, пример в SQL
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:07
@kozlikov жуть....
Ivan
@Hunternnm
Nov 28 2016 11:08
Мсье знает толк в извращениях...
kozlikov
@kozlikov
Nov 28 2016 11:08
@vlsoprun о как
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:09
прост лень писать так как тебе надо :smile:
kozlikov
@kozlikov
Nov 28 2016 11:09
@vlsoprun Я понимаю, что у Вас тут связь
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 11:09
интимная?
@vlsoprun ай яй яй
как ты так
widg
@widg
Nov 28 2016 11:10
тоже хочешь?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 11:10
@widg ну ты прям так сразу рубишь
я же хотел по-тихому подвести к вопросу
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:10
$product = (new Model())
            ->whereHas('category', function (Builder $query) {
                return $query->where('test', 10);
            })
category - связь...
kozlikov
@kozlikov
Nov 28 2016 11:10
@vlsoprun но не понято, как return $query->published(); , т.е. $query знает о методе published()
jonnykey
@jonnykey
Nov 28 2016 11:10
@Dualse я имел ввиду что читал, и знаю базовые. просто человек сказал прочитать консольные команды, и так и делаю, может что-то пропустил. Короче не парьтесь, разберусь ))
kozlikov
@kozlikov
Nov 28 2016 11:11
@vlsoprun Так работать не будет
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 11:11
@kozlikov это скоуп
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:11
@kozlikov забудь что раньше написал, было глупо кидать весь фарш
kozlikov
@kozlikov
Nov 28 2016 11:11
Пожалуйста, подождите. ))
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:17
@kozlikov бро! только пожалуйста посмотри какой sql запрос будет построен ибо select in select не то!...
Все спойлеры закончились...
butschster
@butschster
Nov 28 2016 11:21
@kozlikov https://youtu.be/_fyaXMvwfEA
ссылка на видео, где подробно объясняется как можно улучшить твой запрос :)
kozlikov
@kozlikov
Nov 28 2016 11:22
@butschster Увы, две больших таблицы join не вариант
Зачем мне всю таблицу joinить та?
butschster
@butschster
Nov 28 2016 11:22
@kozlikov там про join ничего нет
kozlikov
@kozlikov
Nov 28 2016 11:23
@butschster Окей, ознакомлюсь более детальнее
butschster
@butschster
Nov 28 2016 11:24
в этом видео рассказывается почему твой запрос плох и как его изменить так, чтобы он стал более производительнее. Видео на 59 минуте
kozlikov
@kozlikov
Nov 28 2016 11:28
Lf
Да да
Я понял
Зачем искать по IN когда можно проверить по EXIST
@butschster Спасибо
KarmaBot
@KarmaBot
Nov 28 2016 11:30
Спасибо (+1) для @butschster принято! Текущая карма +276.
kozlikov
@kozlikov
Nov 28 2016 11:30
@vlsoprun Спасибо
KarmaBot
@KarmaBot
Nov 28 2016 11:30
Спасибо (+1) для @vlsoprun принято! Текущая карма +268.
kozlikov
@kozlikov
Nov 28 2016 11:30
@SerafimArts Спасибо
KarmaBot
@KarmaBot
Nov 28 2016 11:30
Спасибо (+1) для @SerafimArts принято! Текущая карма +635.
kozlikov
@kozlikov
Nov 28 2016 11:31
Большое спасибо еще раз помощь !
KarmaBot
@KarmaBot
Nov 28 2016 11:31
@kozlikov, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:31
@kozlikov Пожалуйста :smile:
Только.....
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 11:31
@kozlikov ? o_0
а мне-то за что? :D
kozlikov
@kozlikov
Nov 28 2016 11:32
@SerafimArts То что то был скопе
Soprun Vladislav
@vlsoprun
Nov 28 2016 11:32

@kozlikov

Пожалуйста, подождите. ))

Сколько еще ждать?! А то я кушать хотеть....

:smile:
kozlikov
@kozlikov
Nov 28 2016 11:32
@vlsoprun Аа, да я уже разобрался. Сначала не понял, зачем whereHas и еще на связь. А тут все гораздо проще оказалось, что проще проверить на EXIST
kozlikov
@kozlikov
Nov 28 2016 12:10
Подскажите, пожалуйста, а как обратиться к scope связи category ?
$product = (new Model())
            ->whereHas('category', function (Builder $query) {
                return $query->myScope(10);
            })
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:11
@kozlikov он на вход прям значение принимает ?!.. )))
kozlikov
@kozlikov
Nov 28 2016 12:12
@vlsoprun Это пример
@vlsoprun Конечно же он примет return $query->myScope($var);
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:13
@kozlikov Ну ты прям совсем уверен в своем деянии? )))
kozlikov
@kozlikov
Nov 28 2016 12:14
@vlsoprun Не много не понял к чему Вы клоните. Может прямо скажите?
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:19

@kozlikov так.. давай проясним, может я сильно гоню...
в локальный scope первый аргумент это Illuminate\Database\Eloquent\Builder последующие значения которые передаются...

Если твой scope

public function myScope($page)
    {
        // ... return $query->where('page', $page);
    }

То это косяк... нужно

public function myScope($query, $page)
    {
        return $query->where('page', $page);
    }
kozlikov
@kozlikov
Nov 28 2016 12:19
Нет вы не поняли суть вопрос)))
Разумеется scope реализован правильно, как у Вас во втором варианте.
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:20
@kozlikov и кстати не Вы, а ты.. Так проще :wink:
Тогда я не понял "как обратиться к scope связи category" ... В смысле?! )))
kozlikov
@kozlikov
Nov 28 2016 12:23

Суть вопроса в том, что в анонимной функции:

->whereHas('category', function (Builder $query)  use ($var) {
                return $query->myScope($var);
            })

Давайте учтем, что обращение идет ко связи caregory - т.е. это модель Category. У модели Category есть scopeTest($query, $var)
Собственно если в анонимной функции вызвать этот скоп, то получим ошибку: Call to undefined method Illuminate\Database\Query\Builder::test()
Если вызвать вот так: Category::test(10) - работает.

Я уже пробовал вот так: $query->getModel()->test($var)
kozlikov
@kozlikov
Nov 28 2016 12:30
А ну понятно
Он пытается вызвать scope класса Model, а не класса Category
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:30

@kozlikov

  1. это https://psv4.vk.me/c537511/u19160613/docs/3ba9ea7add49/magic_meme.gif
  2. $query->getModel()->test($var) явно не то.

А 3 работает 100%

->whereHas('category', function (Builder $query) {
                return $query->scopename();
            })
kozlikov
@kozlikov
Nov 28 2016 12:34
@vlsoprun Ай простите.....
@vlsoprun У меня scope в другом классе ((( Я уверенно знал, что скоп расположен и реализован правильно.
@vlsoprun Спасибо =)
KarmaBot
@KarmaBot
Nov 28 2016 12:36
Спасибо (+1) для @vlsoprun принято! Текущая карма +269.
Роман
@i-coder
Nov 28 2016 12:40
Все подключение настроено правильно
php artisan migrate
[Doctrine\DBAL\Driver\PDOException]
could not find driver
[PDOException]
could not find driver
Но ругается ((
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:44
@i-coder фигово :worried:
@i-coder но вот мне кажется ты нас обманываешь или тут ошибка в " настроено правильно"...
@i-coder прошу в студию содержание .env
Роман
@i-coder
Nov 28 2016 12:49
@vlsoprun
.env
DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=new.dcc.dev
DB_USERNAME=homestead
DB_PASSWORD=secret
.conf
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '192.168.10.10'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'new.dcc.dev'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
@vlsoprun сама лара видет базу - но невидит таблицу
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'new.dcc.dev.users' doesn't exist (SQL: select count(*) as aggregate from users where email = coder.ept@gmail.com)
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:51
так... ты сейчас меня запутал...
Роман
@i-coder
Nov 28 2016 12:51
@vlsoprun и странно что миграция не выполняется так как лара видит базу и подключается
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:52
Что то меня смущает извращенное наименование таблицы....
Роман
@i-coder
Nov 28 2016 12:53
@vlsoprun сейчас переименую проверю
Soprun Vladislav
@vlsoprun
Nov 28 2016 12:54
и проверь, а установлено ли у тебя на сервере php-mysql
Роман
@i-coder
Nov 28 2016 12:56
@vlsoprun у меня вагрант homestead
fakefakefake12
@fakefakefake12
Nov 28 2016 13:00
Так на хомстеде то 127.0.0.1 должен быть для мускла
в .env укажи
Роман
@i-coder
Nov 28 2016 13:00
@fakefakefake12 сейчас
@fakefakefake12 а ну так прописано
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=new-dcc-dev
DB_USERNAME=homestead
DB_PASSWORD=secret
вот загадка не пойму что не так то
fakefakefake12
@fakefakefake12
Nov 28 2016 13:04
посмотри через MySQL Workbench что там за базы у тебя
Connection Method: TCP/IP over SSH
ssh:
127.0.0.1:2222
vagrant
vagrant
mysql:
127.0.0.1
homestead
secret
Soprun Vladislav
@vlsoprun
Nov 28 2016 13:06
@i-coder так. первая строка google [Doctrine\DBAL\Driver\PDOException] could not find driver говорит о том что You need to have a module called pdo_mysql. Looking for following in phpinfo(),
Давай проверим этот факт, есть ли у тебя расширение pdo_mysql ?
fakefakefake12
@fakefakefake12
Nov 28 2016 13:07
@vlsoprun да у него же хомстед, у него все норм настроено, там все модули стандарные
Точнее НЕ норм настроено, но там все есть :D
Soprun Vladislav
@vlsoprun
Nov 28 2016 13:07
@fakefakefake12 и это не отменяет тот факт что оно может быть выключено :wink:
мой опыт хомяка и вагранта 0, но ошибка явно не про то что он не может подключится к бд...
fakefakefake12
@fakefakefake12
Nov 28 2016 13:11
В любом случае, даже если вагрант, в первую очередь настрой нормально рабочее окружение.
JhaoDa
@jhaoda
Nov 28 2016 13:11
@i-coder ты уже который день мучаешься. Я не пойму, кактус вагрантус такой вкусный?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 13:12
@jhaoda кстати напитки из фруктовых кактусов просто офигенские+
Soprun Vladislav
@vlsoprun
Nov 28 2016 13:12
@jhaoda был у меня кот.. Да! они походу вкусные :smile:
JhaoDa
@jhaoda
Nov 28 2016 13:12
Взять РНР, взять мускуль, взять nginx, поставить и настроить ОДИН раз. А потом тупо таскать с машины на машину. Я так делаю уже 10+ лет, только апач уступил место nginx
Soprun Vladislav
@vlsoprun
Nov 28 2016 13:13
@jhaoda :+1: плюс в карму
Есть такое понятие "best practices", а есть "gg wp изи practices" :satisfied:
fakefakefake12
@fakefakefake12
Nov 28 2016 13:15
Ну кому как. Мне вот вагрант понравился, до этого было и ручная и решения xampp/wamp.
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 13:18
docker-compose up! :fire:
Konstantin
@klincheg
Nov 28 2016 13:19
юзайте докер вместо вагранта ( был печальный опыт использования вагранта
Anton Kartsev
@bigperson
Nov 28 2016 13:59
Всем привет. Стоит задача шифрования всех пользовательских данных в базе. Как лучше организовать это? Использовать bcrypt для всех полей?
KarmaBot
@KarmaBot
Nov 28 2016 13:59
@bigperson, и тебе привет ;)
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 14:04
@bigperson ну заиспользуешь, а дальше что?
Как расшифровывать будешь?
Soprun Vladislav
@vlsoprun
Nov 28 2016 14:04
@bigperson а какие именно данные ты хочешь "скрыть" / "убить"
Anton Kartsev
@bigperson
Nov 28 2016 14:05
@SerafimArts хелпер decrypt() разве не для расшифровки предназначен?
Konstantin
@klincheg
Nov 28 2016 14:05
а как выборки делать будете по зашифрованным полям?
Anton Kartsev
@bigperson
Nov 28 2016 14:05
@vlsoprun имена, телефоны и т.д.
Soprun Vladislav
@vlsoprun
Nov 28 2016 14:05
@bigperson то есть, можно ли: Да! можно... Но вопрос на%^&*я это делать...
Anton Kartsev
@bigperson
Nov 28 2016 14:06
@vlsoprun на случай если база утечет
Soprun Vladislav
@vlsoprun
Nov 28 2016 14:11
@bigperson есть MySQL Encryption, удачи бро!.. и мои искрение соболезнования
Anton Kartsev
@bigperson
Nov 28 2016 14:12
ну собственно вопрос, чем это может грозить в плане производительности и дальнейших проблем
Soprun Vladislav
@vlsoprun
Nov 28 2016 14:12
@bigperson в производительности , нет*
@bigperson Только ключи не хранятся локально, только в оперативки.. как раз на случай если ее "скачают", а вот если получат root доступ то тут уже мало что сделаешь...
Anton Kartsev
@bigperson
Nov 28 2016 14:15
@vlsoprun спасибо
KarmaBot
@KarmaBot
Nov 28 2016 14:15
Спасибо (+1) для @vlsoprun принято! Текущая карма +270.
Soprun Vladislav
@vlsoprun
Nov 28 2016 14:16
@bigperson так же думаю с начало стоит обратится в специальную компанию занимающиеся защитой приложений, за адекватную плату, они подскажут где дыры...
А как правило, 80 - 90% проектов == дуршлаг :wink:
Anton Kartsev
@bigperson
Nov 28 2016 14:17
@vlsoprun да уже понял что плохая затея))
Soprun Vladislav
@vlsoprun
Nov 28 2016 14:18
@bigperson а я ток хотел про pсi dss написать :worried:
@bigperson а ты уже сдался )))
Konstantin
@klincheg
Nov 28 2016 14:19
PCI DSS страшная вещь ) проходили когда то в компании
Anton Kartsev
@bigperson
Nov 28 2016 14:57
@vlsoprun а чем плох к примеру данный кейс https://laracasts.com/discuss/channels/laravel/encrypting-model-data
fakefakefake12
@fakefakefake12
Nov 28 2016 15:08
Тут наверное вопрос в усложнении процесса расшифровки при утечке.
Soprun Vladislav
@vlsoprun
Nov 28 2016 15:09

@bigperson шифрование на уровне детского сада :smile:
app_key или соль, хранится в файловой системе...
То есть бери не хочу.... и + дикая нагрузка на cpu для расшифровки и шифрования...

По большому счету - детский сад......

Если тебе нужно шифрование то есть rsa, ключ хоронится в оперативной памяти и ее более проблемнее извлечь + нету "приватного ключа"...
Даже если ты по ошибки сохранишь его в проекте, то абсолютно* ничего не смогут сделать с базой, так как пароль у тебя в голове..

Из безопасности могу сказать так:
Никакого доступа к серверу не должно быть по публичному ssh, только через внутренние сети.
Никакого внешнего доступа к базе из вне сети машины где бд.
Использовать несколько пользователей в базе к разным таблица и с разными правами, некоторые только сохраняют, а другие только читают и то определенные таблицы...
И не хранить подключение в явном виде в файловой системе, используй оперативную память или может memcache для хранение доступов в бд...
И используй ci для деплоя, исключи человеческий факт доступа к серверам...

И нет так страшны все выше перечисленные пункты как то что сотрудник может все слить....

fakefakefake12
@fakefakefake12
Nov 28 2016 15:11
А можно спасибо за эти слова? :D
Soprun Vladislav
@vlsoprun
Nov 28 2016 15:11
@fakefakefake12 спасибо бро :wink:
KarmaBot
@KarmaBot
Nov 28 2016 15:11
Спасибо (+1) для @fakefakefake12 принято! Текущая карма +3.
fakefakefake12
@fakefakefake12
Nov 28 2016 15:11
@vlsoprun тебе спасибо!
KarmaBot
@KarmaBot
Nov 28 2016 15:11
Спасибо (+1) для @vlsoprun принято! Текущая карма +271.
Soprun Vladislav
@vlsoprun
Nov 28 2016 15:12
@fakefakefake12 нет, "encrypting-model-data" это просто геморрой и защита от дебилов... причем тупых....
Более того есть большой шанс полной потери, так как app_key в .env....
Если он исчезни - то полный [%:?()_], если же он будет скомпрометирован или сохранен в ином месте то полный [%^&()]....
Может и кажется простым вариантом, но это гораздо опаснее чем держать root доступ с паролям root.... так как скорее всего бд просто дампнут, а не удалят...
Soprun Vladislav
@vlsoprun
Nov 28 2016 15:18
Короче не стоит использовать "encrypting-model-data"!
fakefakefake12
@fakefakefake12
Nov 28 2016 15:21
У меня в одном проекте дату потертую присылали a.k.a secret-data. Так что не стоит параноить лишний раз.
Soprun Vladislav
@vlsoprun
Nov 28 2016 15:41
Да, ты прав!
Просто постараться изолировать сервер и не использовать никаких нативных sql запросов, только через orm/pdo...
Dmitry Gusev
@GusevDV
Nov 28 2016 20:00
Добрый вечер
JhaoDa
@jhaoda
Nov 28 2016 20:17
@Dmivlagus ты чисто поздороваться заходил? :)
Dmitry Gusev
@GusevDV
Nov 28 2016 20:18
)
@jhaoda я только изучаю Laravel, случайно наткнулся на чат и решил поздороваться)
Dave
@aios
Nov 28 2016 20:23
@Dmivlagus похвально - спасибо.
KarmaBot
@KarmaBot
Nov 28 2016 20:23
Спасибо (+1) для @Dmivlagus принято! Текущая карма +1.
Dave
@aios
Nov 28 2016 20:23
@Dmivlagus а то поназаходят и даже не здороваются.
Dmitry Gusev
@GusevDV
Nov 28 2016 20:24
Может поможете в целом по методике изучения. Не знаю правильный подход или нет - беру готовые примеры и ковыряю, таким образом подглядываю в другие проекты и пишу простенькую CMS. Насколько это вообще правильно?)
Anton Kartsev
@bigperson
Nov 28 2016 20:28
@vlsoprun спасибо
KarmaBot
@KarmaBot
Nov 28 2016 20:28
Спасибо (+1) для @vlsoprun принято! Текущая карма +272.
JhaoDa
@jhaoda
Nov 28 2016 20:32
@Dmivlagus правильно сначала прочитать ВСЮ документацию пару раз, что бы сложилось понимание, о чем там вообще пишут.
Потом, когда возникнет конкретный вопрос, ты будешь знать, что об этом где-то было в доке вместо того, что бы идти спрашивать в чат, потому что здесь 80% вопросов уровня «доку не читаю принципиально»
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:32
Всем привет :) Ребята, такой вопрос: для организации связи многие ко многим без связывающей таблицы не обойтись?
KarmaBot
@KarmaBot
Nov 28 2016 20:32
@age007nt и тебе не хворать :)
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:34
@age007nt можно и без неё
но я не думаю что у тебя Postgres
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:36
@SerafimArts именно что mysql.
@SerafimArts значит, в mysql нет возможности и придется для всех подобных связей тащить за собой еще и связывающие таблицы?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:37
@age007nt это плохо?
в теории можно и без этого через вьюшки попробовать, но нафига?
овернжинеринг
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:39
@SerafimArts Это и интересует. Так как например будет по несколько связей много ко многим, к разным таблицам. И из-за этого количество таблиц может сильно вырасти. Это не проблема?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:40
@age007nt а уверен что тебе не подходит ECS, например?
Ну, в реалиях требуемой сферы конечно же
а не игровой
или, например, полиморфические связи какие-нибудь
JhaoDa
@jhaoda
Nov 28 2016 20:40
@SerafimArts ты бы ещё сказал, что это за ECS
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:41
@jhaoda ооп паттерн такой о_0
для разработки интернет-магазинов и игрушек
Dmitry Gusev
@GusevDV
Nov 28 2016 20:41
@jhaoda спасибо, документацию почитал, фреймворк правда это мой первый, до этого смотрел yii, но почему то не зашел)
KarmaBot
@KarmaBot
Nov 28 2016 20:41
Спасибо (+1) для @jhaoda принято! Текущая карма +1342.
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:42
когда связи и логика основывается на свойствах объекта, а не его интерфейсе
JhaoDa
@jhaoda
Nov 28 2016 20:42
@SerafimArts «mostly used in game development» все должны знать?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:42
@jhaoda я считаю что да
иначе не написать тот же нормальный интернет магазин, упомянутый мною
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:43
@SerafimArts думаю это врядли то что нужно, так как сайт явно не вырастет до размеров интернет магазина.
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:43
ну мало ли, ты про много связей упомянул
а ECS позволяет разбить любое количество совершенно разных товаров таблицы на три
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:44
ну для меня много, это около 5 связей к одной таблице, и допустим так будет максимум к 10 таблицам.
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:44
это разве много? =)
ну т.е. это не много
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:45
Вот я и спрашиваю :)
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:45
15 таблиц + 10 связей
в теории можно через те же полиморфические связи или аналог дискриминатора
Dmitry Gusev
@GusevDV
Nov 28 2016 20:45
Вы тут о высоком, а я вклюнюсь со своим вопросом. Вообще нужно ли связи на уровне БД создавать? Или на уровне приложения достаточно?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:46
форейгн ключики могут лочить иногда реплику
JhaoDa
@jhaoda
Nov 28 2016 20:46
@Dmivlagus в рамках mysql/pgsql/etc ты имеешь ввиду «связи»?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:46
так что от них лучше избавляться
плюс форейгн ключи заставляют всегда иметь строгую структуру, что не всегда удобно
Dmitry Gusev
@GusevDV
Nov 28 2016 20:47
@jhaoda ну да, внешние включи
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:47
например при сидах/фикстурах
JhaoDa
@jhaoda
Nov 28 2016 20:47
Внешние ключи — не связи
Dmitry Gusev
@GusevDV
Nov 28 2016 20:47
Ключи*
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:48
@jhaoda не придирайся, все поняли о чём вопрос =)
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:48
@SerafimArts Просто допустим 10 таблиц и по 5 связей много ко многим к каждой. Итого получается по 10 дополнительных таблиц к каждой из 10 таблиц. В суме 100. Это нормально? Или количество таблиц сильно роли не играет?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:48
@age007nt это 10 доп. таблиц можно сократить до одной
JhaoDa
@jhaoda
Nov 28 2016 20:48
@SerafimArts я неоднократно видел, как люди не понимали и считали, что внешние ключи это и есть связи
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:48
@jhaoda это и есть связи
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:49
@SerafimArts Каким образом?
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:49
не в том понимании, как представляется на уровне ОРМ, но всё же
JhaoDa
@jhaoda
Nov 28 2016 20:49
@SerafimArts мы в чат ларавел же все еще или нет?
Я говорю именно про связи уровня ORM
Kirill Nesmeyanov
@SerafimArts
Nov 28 2016 20:49
@age007nt а с чего ты решил, что пивот обязан содержать только 3 колонки? +)
id + first + second? А не, например: id + first_table + first_id + second_...
я думаю этот намёк уже ответит на твой вопрос ;)
@jhaoda а тебе не пофигу?
Oleksandr Solodovnikov
@age007nt
Nov 28 2016 20:50
@SerafimArts Хм, ну это да :)
@SerafimArts спасибо, толковые намеки даешь :)
KarmaBot
@KarmaBot
Nov 28 2016 20:50
Спасибо (+1) для @SerafimArts принято! Текущая карма +636.
Dmitry Gusev
@GusevDV
Nov 28 2016 20:53
@SerafimArts спасибо понял
KarmaBot
@KarmaBot
Nov 28 2016 20:53
Спасибо (+1) для @SerafimArts принято! Текущая карма +637.