Code: Select all
#[ORM\Entity(repositoryClass: EntityRepository::class)]
#[ApiResource(
operations: [
new Post(
input: InputDto::class,
provider: StateProvider::class,
output: OutputDto::class,
uriTemplate: 'entity/{variable}',
uriVariables: ['variable' => 'variable'],
)
]
)]
Code: Select all
class StateProvider implements ProviderInterface
{
public function __construct(
private RequestStack $requestStack
)
{
$this->requestStack = $requestStack;
}
public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
{
$variable = $uriVariables['variable'] ?? null;
// logic
$outputDto = new OutputDto($dataProcuredFromLogic);
return $outputDto;
}
}
Da frage ich mich, ob das, was ich erreichen wollte, überhaupt möglich ist.
Ich habe versucht, einen Statusprozessor anstelle eines Anbieters zu verwenden und genau die gleiche Logik zu verwenden. Der einzige Unterschied besteht darin, dass ich keinen RequestStack benötigte, um die Eingabedaten zu erhalten, da diese in den Parametern der Methode „process()“ enthalten waren und ich den Rückgabetyp der Methode „process()“ in „OutputDto“ ändern musste. Ich habe dort einen Fehler erhalten, der so aussah:
Code: Select all
"[Semantical Error] line 0, col 75 near 'property = :property_p1': Error: Class App\\Entity\\Entity has no field or association named property"
Ich bin mir nicht sicher, ob ich einen Controller verwenden sollte, wie ich ihn habe Lesen Sie, dass davon in der API-Plattform-Dokumentation abgeraten wird.
Könnten Sie mir helfen, die tatsächlich gewünschte Ausgabe zurückzugeben?
Vielen Dank im Voraus für jede Hilfe, die Sie leisten können!
Mobile version