Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

DTO as resource - auto convert subresource identifiers to objects

オープン
#8,094 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
42/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
php
領域
api, backend

調査の方向性

EventParticipantImageResource ApiResource の宣言と CreateEventParticipantImageProcessor から始め、処理前に URI 変数 eventId と participantId がどのように扱われるかを追跡します。DTO サブリソースのデシリアライズまたは state-building の経路を確認します。参照先のリソースが DTO で利用可能であり、かつ processor がそれらの識別子に引き続きアクセスできれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Hi,

I've created subresource. This resource is DTO, not an entity.

#[ApiResource(
    operations: [
        new Post(
            uriTemplate: '/events/{eventId}/participants/{participantId}/images.{_format}',
            uriVariables: [
                # possible bug below
                'eventId' => new Link(fromClass: EventResource::class, toProperty: 'event'),
                'participantId' => new Link(fromClass: EventParticipantResource::class, toProperty: 'participant'),
            ],
            processor: CreateEventParticipantImageProcessor::class,
        ),
/** ... */
readonly class EventParticipantImageResource

Problem is that in CreateEventParticipantImageProcessor I can use only uri variables cause query is not serialized:

public function process(mixed $data, Operation $operation, array $uriVariables = [], array $context = []) {
     $eventId = $uriVariables['eventId']; # identifier
     $eventId = $data->event?->id; # null
}

Is there functionality that will convert identifiers to target resources and assign to DTO fields so I can use $data->event?->id?

主要言語
PHP
スター
2.6k
フォーク
989
平均マージ
1日 22時間
マージ済み PR(30日)
100

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

api-platform/core のほかの issue

api-platform/core の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。