These are chat archives for LaravelRUS/chat

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

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

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

$service->schemes;
return $service;

Спс!

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

Да и ....

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

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

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

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

@vlsoprun

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

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

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