А как сделать response кастомным?

|
soul_abduction_ceremony 2022-07-03 13:12:03
а что такое РО)
Adelf32 2022-07-03 13:12:12
soul_abduction_ceremony 2022-07-03 13:12:03
а что такое РО)

а вот и узнаешь

mrTeo 2022-07-03 13:12:22
soul_abduction_ceremony 2022-07-03 13:12:03
а что такое РО)

2 РО в не очереди этому парнишке!

s_chizhik 2022-07-03 13:12:25
soul_abduction_ceremony 2022-07-03 13:12:03
а что такое РО)

рид онли

Vlad 2022-07-03 13:13:24
soul_abduction_ceremony 2022-07-03 12:59:42
сделай метод
public function setNoActive($post) {
$post->comments()->udpate([«active»=0]);
$post->active = 0;
$post->update();
}

ой лол, давно такого говна не видел

soul_abduction_ceremony 2022-07-03 13:15:52
Vlad 2022-07-03 13:13:24
ой лол, давно такого говна не видел

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

soul_abduction_ceremony 2022-07-03 13:16:31
в общем я мысль понял, каюсь
Vlad 2022-07-03 13:17:12
oleg_tinko 2022-07-03 12:51:32
Допустим есть две модели посты и комментарии, связанные между собой отношением hasMany. В обоих моделях есть boolean столбец Active для возможности отключения (скрытия). Как сделать так чтоб если какой пост становится не активным (Active = 0) то все комментарии связанные с этим постом тоже становились неактивными (Active = 0) ?

Обсервер заюать?

Adelf32 2022-07-03 13:17:54
Vlad 2022-07-03 13:17:12
Обсервер заюать?

а что в нем написать?

Vlad 2022-07-03 13:18:56
Adelf32 2022-07-03 13:17:54
а что в нем написать?

Логику, которую нужно автору
Но сейчас подумал и понял, что потом будут проблемы с ним

Adelf32 2022-07-03 13:19:49
Vlad 2022-07-03 13:18:56
Логику, которую нужно автору
Но сейчас подумал и понял, что потом будут проблемы с ним

еще какие. начиная с того, что код в обсервере будет пытаться понять что случилось. активейтнули пост или наоборот… юзая оригинальные значения и текущие. тот еще говнокод

Vlad 2022-07-03 13:20:39
Adelf32 2022-07-03 13:19:49
еще какие. начиная с того, что код в обсервере будет пытаться понять что случилось. активейтнули пост или наоборот… юзая оригинальные значения и текущие. тот еще говнокод

Ну тогда екшены наверно будут норм вариантом

soul_abduction_ceremony 2022-07-03 13:25:08
mrTeo 2022-07-03 13:07:32
А еще — слышал о mass store?

а как лучше делать в таких ситуациях?

soul_abduction_ceremony 2022-07-03 13:26:32
mrTeo 2022-07-03 13:07:45
События не отработают при таком обновлении

чтобы не было этой проблемы

mrTeo 2022-07-03 13:43:48
soul_abduction_ceremony 2022-07-03 13:25:08
а как лучше делать в таких ситуациях?

Ну либо поштучно обновлять, либо самому инициализировать все события. Что лучше думаю сложно сказать — если 100500 комментариев будет — то штучно будет не лучшим решением

mrTeo 2022-07-03 13:44:35
Тут скорее лучшим решением будет — вообще не трогать комментарии
soul_abduction_ceremony 2022-07-03 13:45:49
mrTeo 2022-07-03 13:44:35
Тут скорее лучшим решением будет — вообще не трогать комментарии

ну и тогда получается при выборке комментов whereHas и проверять что пост активен, да?

soul_abduction_ceremony 2022-07-03 13:46:04
или как
mrTeo 2022-07-03 13:46:09
soul_abduction_ceremony 2022-07-03 13:45:49
ну и тогда получается при выборке комментов whereHas и проверять что пост активен, да?

Ну да

led23 2022-07-03 13:54:03
Подскажите пожалуйста, как пагинация работает в ресурсе?

вот так пагинация есть
‘reviews’ =>Review::query()->simplePaginate()

А вот так исчезает
ReviewResource::collection(Review::query()->simplePaginate())

В чем может быть дело?

mrTeo 2022-07-03 13:55:53
led23 2022-07-03 13:54:03
Подскажите пожалуйста, как пагинация работает в ресурсе?

вот так пагинация есть
‘reviews’ =>Review::query()->simplePaginate()

А вот так исчезает
ReviewResource::collection(Review::query()->simplePaginate())

В чем может быть дело?

Что исчезает?

a1keeen 2022-07-03 13:56:24
Ну все правильно, ты прогоняешь весь объект данных через ресурс и на выходе получаешь только его
soul_abduction_ceremony 2022-07-03 13:56:52
led23 2022-07-03 13:54:03
Подскажите пожалуйста, как пагинация работает в ресурсе?

вот так пагинация есть
‘reviews’ =>Review::query()->simplePaginate()

А вот так исчезает
ReviewResource::collection(Review::query()->simplePaginate())

В чем может быть дело?

количество записей не то или как?

led23 2022-07-03 13:57:00
mrTeo 2022-07-03 13:55:53
Что исчезает?

пагинация

led23 2022-07-03 13:57:15
a1keeen 2022-07-03 13:56:24
Ну все правильно, ты прогоняешь весь объект данных через ресурс и на выходе получаешь только его

так, а как поступить верно?
Тут как будто бы все https://laravel.com/docs/8.x/eloquent-resources#data-wrapping-and-pagination

Laravel — The PHP Framework For Web ArtisansLaravel
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
mrTeo 2022-07-03 13:57:42
led23 2022-07-03 13:57:00
пагинация

В каком плане исчезает? Больше записей становится?

led23 2022-07-03 13:58:09
mrTeo 2022-07-03 13:57:42
В каком плане исчезает? Больше записей становится?

не выводятся метаданные
записи сейчас чекну

soul_abduction_ceremony 2022-07-03 13:58:33
led23 2022-07-03 13:58:09
не выводятся метаданные
записи сейчас чекну

это потому, что ресурс оставляет только то, что ты указал

mrTeo 2022-07-03 13:58:45
led23 2022-07-03 13:58:09
не выводятся метаданные
записи сейчас чекну

Ну а как ты возвращаешь из метода?

led23 2022-07-03 13:59:02
soul_abduction_ceremony 2022-07-03 13:58:33
это потому, что ресурс оставляет только то, что ты указал

Так, пагинация работает, только метадаты нет

led23 2022-07-03 13:59:10
mrTeo 2022-07-03 13:58:45
Ну а как ты возвращаешь из метода?

мета отдельно не возвращаю

led23 2022-07-03 13:59:33
laravel_web-802219.jpg
ресурс коллекции дергает парент
mrTeo 2022-07-03 14:00:05
led23 2022-07-03 13:59:33
ресурс коллекции дергает парент

Я спрашиваю про метод

soul_abduction_ceremony 2022-07-03 14:00:44
led23 2022-07-03 13:59:02
Так, пагинация работает, только метадаты нет

оставляет только те данные, которые ты указал*

mrTeo 2022-07-03 14:00:57
led23 2022-07-03 13:59:33
ресурс коллекции дергает парент

laravel_web-802222.jpg
Вот у меня метод

led23 2022-07-03 14:01:08
laravel_web-802223.jpg

a1keeen 2022-07-03 14:01:10
Собери массив данных сам, укажи в [‘data’ => Resource:: collection(…), ‘links’ => $reviews->links()]
mrTeo 2022-07-03 14:01:37
led23 2022-07-03 14:01:08

Ну верни как у меня и всё будет

mrTeo 2022-07-03 14:02:09
led23 2022-07-03 14:01:08

В доке же по другому

mrTeo 2022-07-03 14:02:25
a1keeen 2022-07-03 14:01:10
Собери массив данных сам, укажи в [‘data’ => Resource:: collection(…), ‘links’ => $reviews->links()]

Сходи проверь — потом пиши

led23 2022-07-03 14:02:47
mrTeo 2022-07-03 14:00:57
Вот у меня метод

Не понмаю пока разницы

mrTeo 2022-07-03 14:03:11
led23 2022-07-03 14:02:47
Не понмаю пока разницы

Ну ты верни сам ресурс

led23 2022-07-03 14:03:13
laravel_web-802230.jpg
Вот так выглядит целевой метод
led23 2022-07-03 14:03:35
mrTeo 2022-07-03 14:03:11
Ну ты верни сам ресурс

оу, понял похоже

mrTeo 2022-07-03 14:04:01
led23 2022-07-03 14:03:35
оу, понял похоже

Если хочешь чтобы не data была — добавляешь public static $wrap

led23 2022-07-03 14:04:06
А как сделать response кастомным?
led23 2022-07-03 14:04:12
для ресурса?
mrTeo 2022-07-03 14:04:26
led23 2022-07-03 14:04:12
для ресурса?

https://laravel.com/docs/8.x/eloquent-resources#data-wrapping

Laravel — The PHP Framework For Web ArtisansLaravel
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
mrTeo 2022-07-03 14:04:30
Или доку читаем
mrTeo 2022-07-03 14:04:55
Или зачем нам Ларавел?
|