我有一个Question实体,它与Answer关联“ OneToMany”。问题是如何使用path ='question / {id} / add_answer'创建自定义端点以添加对特定问题的答案。
答案 0 :(得分:0)
在回送中,我们可以通过这种方式进行制作。
http:{
verb:'patch',
path:'/:questionId/add_answer/'
}
答案 1 :(得分:0)
您实际上不需要为此的自定义端点。您可以将答案发布添加到答案问题中,如下所示:
{
"question": {"id": 2},
"message": "Hello, this is my answer for question with id 2"
}
您必须在要发布的答案属性(在这种情况下为消息)中的问题属性中的问题关系中添加帖子组。
如果仍然要为此创建自定义操作。您应该将此注释添加到下面的收集操作的问题实体中:
* "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
}
}
顺便说一句。推荐第一个选项。