2017-05-30 47 views
1

例如,我擁有屬性$ name(字符串)的實體Cat。無形式的Symfony 2/3 REST API驗證

我發送到URL POST /貓與參數[名稱= 123]

如何可以驗證來自請求的數據,而不形式?或者REST API與表單驗證是正常的?沒有窗體,我找不到有關驗證的信息。我可以在沒有表單的情況下使用驗證組件,但可能存在一些可以給我比$ this-> get('validator') - > validate('request from request')更好的方法的bundle。

謝謝。

+0

這裏一個類似的問題https://stackoverflow.com/questions/10324782/validating-entities-without-form-in-symfony-2 – Arno

回答

0

我建議你還是用表格來處理驗證,並且可以模擬手動提交:然後http://symfony.com/doc/current/form/direct_submit.html#calling-form-submit-manually

非常簡單的例子可能是類似下面。

$formFactory = new Symfony\Component\Form\FormFactory(); 

//build your "post" data from your submitted content via api 
$data = json_decode($request->getContent(), TRUE); 

//build your Form and Entity objects. 
$formType = new Path\To\CatForm(); //for example 
$entity = new Path\To\CatEntity(); 

$parameters = array(); 
$method = 'POST'; 

$form = $formFactory->create($formType, $entity, ['method' => $method]); 
$form->submit($parameters, ($method == 'PATCH' ? false : true)); 

if ($form->isValid()) { 
    //do stuff 
}