簡體   English   中英

API REST php7 symfony 3.4-將json綁定到表單

[英]API REST php7 symfony 3.4 - Databind json to forms

我發現了這一點: “如何使用FOSRestBundle和Symfony表單處理嵌套的json”,但是人們接受的答復是: “制作未映射的表單並使用表單事件手動綁定數據”

播放中 ,您可以編寫自己的數據綁定程序,但是對於大多數格式( xmljson ,...),您可以根據Content-Type http標頭( @BodyParser.Of(BodyParser.Json.class) 在這里不是強制性的才能使其正常運行),有一些眾所周知的數據綁定器可用(來自Spring或任何地方)。 產品可以具有項目列表 ,即使如此, 您也可以將請求正文自動綁定到表單

PHP / Symfony尚未學習如何解決此問題? 如果我在PHP中創建一個REST API + symfonmy我需要寫一些“分析器”像這樣 有人可以共享指向帖子或示例的鏈接嗎?

PD:我使用play例子是因為我不是一個經驗豐富的Web開發人員(PHP較少),所以像我的mcve一樣。

提前致謝。

要解決此問題,請確保顯式定義表單上所有具有關系的字段:

$builder->add('field_simple')
        ->add('field_entity')
...

上面的代碼將不起作用,因為字段“ field_entity”將像另一個簡單字段一樣使用,您將必須定義實體的所有字段,或者至少要關注感興趣的字段,例如:

$builder->add('field_simple')
        ->add('field_entity', EntityType::class, array(
            'class' => CustomEntity::class,
            ...
        ))
...

最好的祝福...

根據我的經驗,您可以通過兩種方式實現這一目標:

  1. 將JSON反序列化為實體
  2. 根據您的建議處理請求

在我的項目中,我總是使用第二種方法,因為從數據庫加載的實體更新實體並處理數據驗證非常容易。

我讓您使用的鏈接是舊版本,但或多或​​少仍是同一knp大學

希望對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM