Size: a a a

2021 January 29

C

CvekCoder in symfony
SixthSense
Ребят кто сталкивался с сабресурсом от ApiPlatform баг есть и не знаю как обойти, не могу задать path для сабресурса

subresourceOperations={
*          "api_rooms_room_messages_get_subresource"={
*             "method"="GET",
*             "path"="/frontend/rooms/{id}/room_messages",
*         },
*     },
/room_messages",
*         },
*     },

а в php bin/console debug:router

api_rooms_room_messages_get_subresource       GET      ANY      ANY    /rooms/{id}/room_messages.{_format}
А rooms у вас на каком урле висят? /frontend/rooms или просто /rooms?
источник

S

SixthSense in symfony
CvekCoder
А rooms у вас на каком урле висят? /frontend/rooms или просто /rooms?
и на таком и на таком
источник

S

SixthSense in symfony
т.е

"get"={
*              "access_control"="is_granted('ROLE_ROOM_LIST')"
*          },
*          "frontendGet"={
*              "normalization_context"={"groups"={"frontend_read", "read", "is_active_read"}},
*              "method"="GET",
*              "path"="/frontend/profile/rooms",
*              "controller"=RoomGetCollectionAction::class,
*              "defaults"={"_api_receive"=false},
*          },
источник

S

SixthSense in symfony
находил тему на стак оверфлоу, но тоже не очень помогает
https://stackoverflow.com/questions/62776366/api-platform-custom-subresource-path-doesnt-work
источник

S

SixthSense in symfony
но как бы я не задавал имя ендпоинту, path просто не меняется
источник

C

CvekCoder in symfony
SixthSense
Ребят кто сталкивался с сабресурсом от ApiPlatform баг есть и не знаю как обойти, не могу задать path для сабресурса

subresourceOperations={
*          "api_rooms_room_messages_get_subresource"={
*             "method"="GET",
*             "path"="/frontend/rooms/{id}/room_messages",
*         },
*     },
/room_messages",
*         },
*     },

а в php bin/console debug:router

api_rooms_room_messages_get_subresource       GET      ANY      ANY    /rooms/{id}/room_messages.{_format}
А всю аннотацию покажите плиз
источник

C

CvekCoder in symfony
С ApiResource
источник

S

SixthSense in symfony
CvekCoder
А всю аннотацию покажите плиз
источник

C

CvekCoder in symfony
messages_get_subresource - вот это выглядит как неправильное название операции. APIP же генерит эти названия автоматически, что-то типа "rooms_room_messages_get_subresource" (еще и префикс может добавить). И вам надо указывать именно то название, которое гененрится .Иначе APIP не может отмапить ваш кастомный path на операцию и использует дефолт урл
источник

S

SixthSense in symfony
CvekCoder
messages_get_subresource - вот это выглядит как неправильное название операции. APIP же генерит эти названия автоматически, что-то типа "rooms_room_messages_get_subresource" (еще и префикс может добавить). И вам надо указывать именно то название, которое гененрится .Иначе APIP не может отмапить ваш кастомный path на операцию и использует дефолт урл
блин точно пропустил вначале название room. Спасибо.
было изначально так:
- api_rooms_room_messages_get_subresource - не работало
потом по ошибки вписал так:
- messages_get_subresource - не работало
после вашей правки написал:
- room_messages_get_subresource - заработало
источник

S

SixthSense in symfony
Спасибо)
источник

C

CvekCoder in symfony
Всегда пожалуйста. Ссылку на кошелек кину в личку)
источник

fn

first name in symfony
Добрый день.
Ребят, хочу сделать логгирование изменения нескольких сущностьей.
Есть две сущности:
App:
int $id
status $status

Task:
int $id
status $status

Хотелось бы складывать в таблицу время смены статуса.
Log
int $id
string $type_entity (app or task)
int $id_entity
status $status
date $date

Прогуглил насчет полиморфных связей, но чет все советуют от них уйти, либо же нахожу примеры, которые мне не подходят.
Может кто дать совет как это реализовать на доктрине и вообще стоит ли над этим заморачиваться или есть лучшее решение?

Заранее благодарю за ответы :3
источник

VK

Vladyslav Kopaihorod... in symfony
first name
Добрый день.
Ребят, хочу сделать логгирование изменения нескольких сущностьей.
Есть две сущности:
App:
int $id
status $status

Task:
int $id
status $status

Хотелось бы складывать в таблицу время смены статуса.
Log
int $id
string $type_entity (app or task)
int $id_entity
status $status
date $date

Прогуглил насчет полиморфных связей, но чет все советуют от них уйти, либо же нахожу примеры, которые мне не подходят.
Может кто дать совет как это реализовать на доктрине и вообще стоит ли над этим заморачиваться или есть лучшее решение?

Заранее благодарю за ответы :3
Ну так складівай без связи
источник

VK

Vladyslav Kopaihorod... in symfony
Это ж лог
источник

D

Dmitry in symfony
insert into log (fields_here) values(...)
все
источник

fn

first name in symfony
Vladyslav Kopaihorodskyi
Ну так складівай без связи
Если бы это было просто логгирование, для какой-нибудь аналитики или просто техническая приблуда - да.
Но там завязаны пару бизнес правил насчет перехода на статус, хотелось бы как-нибудь привязать их к сущностям
источник

fn

first name in symfony
Dmitry
insert into log (fields_here) values(...)
все
Точно, в доктрине так и делается)))
источник

D

Dmitry in symfony
а в changeStatus методе делаем просто dispatch(new StatusChangedEvent())
источник

D

Dmitry in symfony
логгер подписывается на этот ивент и делает что хочет с данными
источник