2017-05-30 3 views
1

たとえば、プロパティ$ name(string)を持つエンティティCatがあります。symfony 2/3フォームなしのREST APIのバリデーション

私は、フォームなしでリクエストからデータを検証することができますどのようにPOST /パラメータの猫[名= 123]

をURLに送信しますか?または、フォームの検証を行うREST APIは正常ですか?フォームなしの検証についての情報は見つかりません。私はフォームなしでValidationコンポーネントを使うことができますが、$ this-> get( 'validator') - > validate( 'request from data')より優れたアプローチを提供できるバンドルが存在する可能性があります。

ありがとうございました。

+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 
} 
関連する問題