2017-08-25 5 views
1

私には何かがありません。 私はymlファイルを介して検証されたUserエンティティを持っていますが、ルートへの投稿要求を送信するたびにリクエストを受け取っていないようです。これで私はルートが正常に動作することを意味しますが、パスワードとユーザ名が空白にならないようにエラーメッセージが表示され続けます(制約が設定されているためです)。だから、それは私の要求がエンティティに対して検証されていないようです。symfonyのバリデーションがうまくいかない

私は、この設定を持っていることを確認しましたが、私の設定でトリガー: validation: { enabled: true, enable_annotations: true }

ここに私のrouting.ymlです:

user_login_homepage: 
    path:  /check 
    defaults: { _controller: UserLoginBundle:Login:checkCredentials } 
    methods: [POST] 

ここにここに私のvalidation.yml

User\UserBundle\Entity\User: 
    properties: 
     username: 
      - NotBlank: ~ 
     password: 
      - NotBlank: ~ 

は(私のコントローラですLoginController.php

public function checkCredentialsAction(Request $request) 
{ 
    $recursiveValidator = $this->get('validator'); 

    $user = new User(); 

    $errors = $recursiveValidator->validate($user); 

    if (count($errors) > 0) { 
     $errorsString = (string) $errors; 
     return new Response($errorsString); 
    } 

    return new Response('Yuppy'); 
} 

私はちょうど指示に従おうとしましたが、私はそれを動作させることができません:( 私は何かが不足していますか?それは誤り正しいですので、あなたが空のユーザを作成している

答えて

2

、(?私は、そのユーザー名とパスワードは、右のPOSTデータに渡されると想像している)、これを試してみてください。

$user = new User(); 
$postData = $request->request->all(); 
$user->setUsername($postData['username']; 
$user->setPassword($postData['password']; 

$errors = $recursiveValidator->validate($user); 
+0

うんどうもありがとう。はい、POSTによって渡されています。あなたのソリューションに関連する単なる質問です。そのようなデータをテーブルに保存しないのですか? –

+0

このようにしてエンティティを埋め、エラーをチェックし、保存した後にsymfonyフォームを使用している場合は、フォームによって渡されたフォームをユーザに自動的に記入することができます –

+0

そうですが、ケースは私がフォームを使用していないという事実にありますので、少し違っていました! 乾杯! :) –

関連する問題