[英]Is it possible to use the Symfony form component with React.js?
我正在使用 Symfony 表單組件。 我的項目中有很多表單。
完美地學習表單組件還有很長的路要走,但現在我喜歡它。 我也喜歡自動驗證等。
所以。 現在我想在我的項目中學習和使用 React.js。
但看起來,我無法像以前一樣為項目使用驗證和表單構建器? 我在嗎?
雖然在 API 上下文中,您不會使用表單組件以 HTML 格式( $form->createView()
方法)實際呈現表單,但您仍然可以從它提供的所有魔法中受益:驗證、表單事件、等 API 與否,我個人認為您應該始終在控制器突變中使用表單類型。
例如,使用 FOSRestBundle,考慮一些簡單的控制器操作,如下所示:
/**
* @Rest\Put("posts/edit/{id}", name="posts.edit", requirements={"id"="\d+"})
*
* @param Post $post
* @param Request $request
*
* @return Post
*
* @throws BadRequestException
*
*/
public function edit(Post $post, Request $request): Post
{
$form = $this->createForm(PostType::class, $user);
$form->handleRequest($request);
$form->submit($request->request->all());
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($post);
$em->flush();
return $post;
}
// Any error handling of your taste.
// You could consider expliciting form errors.
throw new BadRequestException();
}
請注意,當然必須創建Post
實體和PostType
表單。 我不會在這里詳細說明,因為在這種情況下沒有什么特別要說的。
另請注意,我們不檢查表單是否已提交。 在您的情況下,將表單呈現為 React 的工作是 HTML,此操作不會用於獲取任何內容,它只是一個 PUT 路由。 這意味着任何到達那里的請求都必須是一個 PUT 請求,其中包含要由我們的PostType
處理的正確數據,在您的情況下通過在 React 中手動構建的 HTML 表單提交。
此外,稍微超出問題的范圍,FOSRestBundle 訂閱您的操作返回的任何內容並自動將其序列化為配置的格式(我猜在您的情況下假設為 JSON)。 這意味着我們的動作示例可以返回兩種可能的響應:
請允許我引導您查看FOSRestBundle 的文檔。
可能不是因為您的表單是供服務器使用的:驗證/顯示錯誤/數據規范化/sanatization/等。
通常您使用 React 來顯示 HTML 並使用 API 將其連接到您的服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.