These are chat archives for LaravelRUS/chat

18th
Jun 2018
Artur Gafurov
@assurrussa
Jun 18 2018 07:51 UTC
Всем привет, что-то наплодили чатов, а кто где сидит то?* В дискорде тишина, здесь вроде больше активен чат.
Andrey
@daaner
Jun 18 2018 08:34 UTC
@assurrussa в телеграмме все, тут крайне мало
Lunberg88
@Lunberg88
Jun 18 2018 08:34 UTC
А можно канал в телеграмме?)
Andrey
@daaner
Jun 18 2018 08:36 UTC
@Lunberg88 пффф... легко
https://t.me/laravel_pro
https://t.me/laravelrus
Lunberg88
@Lunberg88
Jun 18 2018 08:36 UTC
Благодарю
Andrey
@daaner
Jun 18 2018 08:37 UTC
@Lunberg88 на здоровье)
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 11:54 UTC

Привет всем! Проблема с ->with().
Есть 2 таблицы: Услуги и Схемы услуг.
Нужно получить информацию об услуге по переданному id и все привязанные к ней схемы.

Код:

/**
 * App\Service (Модель)
 */
public function schemes()
{
    return $this->hasMany('App\Scheme');
}

/**
 * App\Http\Controllers\Api\ServiceController 
 */
public function full(Service $service)
{
    return $service->with('schemes')->get();
}

При использовании ->with('schemes')->get(); вместо одной запрошенной записи Laravel возвращает все услуги.
Что я делаю не так?

JhaoDa
@jhaoda
Jun 18 2018 12:29 UTC
@grv_alexx_twitter с with нет проблем, это у тебя проблемы с пониманием того, как оно работает
Alexey Yastrebov
@Anurhat
Jun 18 2018 12:35 UTC
Привет, вопросик по проектированию БД. Нормально ли в таблице делать колонку data и хранить данные в ней в json'е, если я уверен, что никогда никаких селектов не производилось бы по свойствам этого json (если бы это были не свойства, а колонки таблицы) ?
Alexey Yastrebov
@Anurhat
Jun 18 2018 12:44 UTC
Или лучше избегать такой практики в любом случае?
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 12:44 UTC
@jhaoda, ок, это не вызывает сомнений. Может быть, ты сможешь прояснить этот момент более развернуто (после курения мануала проще не стало)?
JhaoDa
@jhaoda
Jun 18 2018 12:50 UTC
@grv_alexx_twitter откуда берётся параметр в public function full(Service $service)?
@Anurhat а даже если и будут селекты, в чём проблема?
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 12:51 UTC
@jhaoda, приходит из роута Route::get('services/{service}/full', 'Api\ServicesController@full');
JhaoDa
@jhaoda
Jun 18 2018 12:52 UTC
@grv_alexx_twitter т.е. настроен биндинг?
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 12:52 UTC
да
JhaoDa
@jhaoda
Jun 18 2018 12:52 UTC
@grv_alexx_twitter тогда зачем тебе вообще with, если это одна сущность? Не будет проблемы N+1
Alexey Yastrebov
@Anurhat
Jun 18 2018 12:54 UTC
@jhaoda в селекте по определенным условиям или сортировке. Ну вот, о чем здесь в первых трех строчках ответа https://toster.ru/q/242568
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 12:55 UTC
@jhaoda, хочу нетерпеливо загрузить схемы и (в будущем) еще несколько связанных таблиц в одном запросе. Без with возвращает только одну модель услуг, естессно
JhaoDa
@jhaoda
Jun 18 2018 12:55 UTC
@Anurhat нет никаких проблем с выборкой по полям жысона. Уже нет, этому ответу 3 года
Alexey Yastrebov
@Anurhat
Jun 18 2018 12:56 UTC
@jhaoda Хех, спасибо)
JhaoDa
@jhaoda
Jun 18 2018 12:57 UTC
@grv_alexx_twitter не будет одного запроса, если только руками джоины писать. Ты уверен, что понял, как ларавел работает со связями?
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 12:58 UTC
@jhaoda, пока обошел так, но как-то некошерно $response = $service; $response['schemes'] = $service->schemes;
JhaoDa
@jhaoda
Jun 18 2018 12:59 UTC
@grv_alexx_twitter предлагаю продолжить чтение документации
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 12:59 UTC
@grv_alexx_twitter не будет одного запроса, если только руками джоины писать. Ты уверен, что понял, как ларавел работает со связями?
@jhaoda, начинаю сомневаться
JhaoDa
@jhaoda
Jun 18 2018 13:00 UTC
@grv_alexx_twitter каждая связь — отдельный запрос
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 13:10 UTC

@jhaoda, понял, где затупил.
Действительно, with здесь не нужен. Все решается простым

$service->schemes;
return $service;

Спс!

JhaoDa
@jhaoda
Jun 18 2018 13:11 UTC
@grv_alexx_twitter даже это лишнее
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 13:11 UTC
@jhaoda ?
JhaoDa
@jhaoda
Jun 18 2018 13:12 UTC
@grv_alexx_twitter как только ты обратишься к этой связи первый раз, она тут же загрузится, ёмаё
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 13:15 UTC
@jhaoda, это да, только когда я пытаюсь вернуть сразу return $service->schemes;, то получаю только коллекцию shemes (без services). Или ты не об этом?
JhaoDa
@jhaoda
Jun 18 2018 13:16 UTC
@grv_alexx_twitter а, вон как. Есть более культурный способ — load().
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 13:19 UTC
@jhaoda, у меня фронт на vue, насколько знаю, там вызывать методы моделей нельзя, ибо уже джисон... Потому и вопрос возник
JhaoDa
@jhaoda
Jun 18 2018 13:20 UTC
@grv_alexx_twitter а при чём тут фронт вообще? Читай доку, короче.
Alexey Vovkovich
@grv_alexx_twitter
Jun 18 2018 13:21 UTC
@jhaoda, сорри, это было к предыдущему комменту.
Раньше просто во вьюху передавал модель, и там уже подтягивал нужные отношения, а сейчас нужно сразу отдать все данные, вот что имел ввиду. Ладно, спс еще раз
Ваня Devium
@webdevium
Jun 18 2018 14:05 UTC
Доброго дня :)
Vlad Shcherbin
@VladShcherbin
Jun 18 2018 15:02 UTC
@webdevium доброго :wink:
sx000
@sx000
Jun 18 2018 16:22 UTC
всем привет
sx000
@sx000
Jun 18 2018 16:29 UTC
Есть проблема орг характера :)
Я пишу на локале (MACOS), есть VPS, куда все выгружаю по мере ...
Нужно как то настроить систему апдейтов с локали на сервер через GIT, ок сделал на битюакете репу, запушил туда то, что натворил ... с сервера начинаю тянуть апдейт и первая проблема слетают права - как побороть?
кому интресно git config core.filemode false
Soprun Vladislav
@vlsoprun
Jun 18 2018 17:31 UTC
@sx000 А в смысле слетают права?!
Допустим есть некий www-data - пользователь, соответственно nginx, php & git с ним и работают

Да и ....

Нужно как то настроить систему апдейтов с локали на сервер через GIT

Звучит как CI, англ. Continuous Integration.

Gitlab, GitHab и иные инструменты в помощь

Andrey
@daaner
Jun 18 2018 18:15 UTC
@sx000 почитай про автодеплой и раннеры
sx000
@sx000
Jun 18 2018 20:02 UTC
да я на докер чего то вообще стал посматривать :)
Vlad Shcherbin
@VladShcherbin
Jun 18 2018 20:39 UTC
@sx000 с ним не меньше веселья тебя ожидает)
Andrey
@daaner
Jun 18 2018 21:12 UTC
@VladShcherbin +1)
@sx000 деплой и не парся
sx000
@sx000
Jun 18 2018 21:15 UTC

@vlsoprun

Допустим есть некий www-data - пользователь, соответственно nginx, php & git с ним и работают

Да но проблема в том, что у меня на macos стоит MAMP сервер и у него свое окружение и права там свои, поднимать на локале под каждый проект не совсем же гуд.

это основная проблема как бы у меня
sx000
@sx000
Jun 18 2018 21:24 UTC
плюс же там всякие 775 или 755 и тд права на разные папки, я вот подумываю мож снимки делать VPS где проект крутиться и разворачивать у себя, и к нем через VBOX конектится через пробросы портов ...
ну и гит снимать с него и пушить , наверное самое лучшее решение будет, тот же докер тока в профиль :)
Andrey
@daaner
Jun 18 2018 22:01 UTC
@sx000 да, при таком подходе докер лучше