将项目添加到数组集合 api 平台
Adding item to Array collection api platform
我有一个问题实体 'OneToMany' 与答案相关。问题是如何使用 path='question/{id}/add_answer' 创建自定义端点以添加对特定问题的回答。
loopback中我们可以这样实现
http:{
verb:'patch',
path:'/:questionId/add_answer/'
}
您真的不需要自定义端点。您可以使用以下内容向 asnwer 问题添加答案 posting:
{
"question": {"id": 2},
"message": "Hello, this is my answer for question with id 2"
}
您必须在您想要 post 的答案属性中添加 post 组(在本例中为消息),在答案 属性 和问题 ID 中的问题关系中实体。
如果您仍想为此创建自定义操作。您应该将此注释添加到下面的问题实体中以进行收集操作:
* "add_answer"={
* "method"="POST",
* "path"="/question/{id}/add_answer",
* "controller"=AddAnswerAction::class,
* "denormalization_context"={
* "groups"={"add-answer"} //add this group to the properties that you want to post. You probable has to create and field in this entity. You dont need add it to the bbdd.
* }
* },
在 Controller 目录下,您必须创建 AddAnswerAction.php 并执行逻辑。像这样:
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
final class AddAnswerAction
{
public function __construct(
) {
}
/**
* @return Response
*/
public function __invoke(Question $question)
{
//logic
}
}
顺便说一句。推荐第一个选项。
我有一个问题实体 'OneToMany' 与答案相关。问题是如何使用 path='question/{id}/add_answer' 创建自定义端点以添加对特定问题的回答。
loopback中我们可以这样实现
http:{
verb:'patch',
path:'/:questionId/add_answer/'
}
您真的不需要自定义端点。您可以使用以下内容向 asnwer 问题添加答案 posting:
{
"question": {"id": 2},
"message": "Hello, this is my answer for question with id 2"
}
您必须在您想要 post 的答案属性中添加 post 组(在本例中为消息),在答案 属性 和问题 ID 中的问题关系中实体。
如果您仍想为此创建自定义操作。您应该将此注释添加到下面的问题实体中以进行收集操作:
* "add_answer"={
* "method"="POST",
* "path"="/question/{id}/add_answer",
* "controller"=AddAnswerAction::class,
* "denormalization_context"={
* "groups"={"add-answer"} //add this group to the properties that you want to post. You probable has to create and field in this entity. You dont need add it to the bbdd.
* }
* },
在 Controller 目录下,您必须创建 AddAnswerAction.php 并执行逻辑。像这样:
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
final class AddAnswerAction
{
public function __construct(
) {
}
/**
* @return Response
*/
public function __invoke(Question $question)
{
//logic
}
}
顺便说一句。推荐第一个选项。