0

symfony2 の検証フォームに問題があります。

エンティティを持つフォームがあります。ファイル「validation.yml」にCALLBACKを使用しました:ファイル「Entity.php」のコンテンツ「isValidForm」メソッドを呼び出します

ALM\CreateReleaseBundle\Entity\createReleaseEntity:
    constraints:
        - Callback:
            methods: [isFormValid]

これは私のファイル「Entity.php」です

<?php
namespace ALM\CreateReleaseBundle\Entity;
use Symfony\Component\Validator\ExecutionContext;

class createReleaseEntity {
    protected $area;
    protected $relName;

    public function getArea() {
        return $this->area;
    }

    public function setArea($area) {
        $this->area = $area;
    }

    public function getRelName() {
        return $this->relName;
    }

    public function setRelName($relName) {
        $this->relName = $relName;
    }

    public function isFormValid(ExecutionContext $context) {
        // Validate Form
    }
}

「isFormValid」で、別のコントローラーに配置された関数 getRelease に転送を挿入したいと思います。

public function getReleaseAction (Request $request) {
$area = $request->get('area');
    $relName = $request->get('relName');
    $ret = $this->getRelease($area,$relName);
    $session = $this->get('request')->getSession();
    $session->set("releaseObj", $ret);
    return new Response ();
}

可能です?どうすればそれができますか?

4

1 に答える 1

0

いかなる状況においても、モデルからコントローラーにアクセスしないでください。

どのようなクエリを実行しますか?

たとえば、リリースがデータベース内でrelNameによって一意であるかどうかを確認する場合は、そのフィールドでDoctrineのUniqueValidatorを使用します。

それが役に立てば幸い

于 2012-11-15T23:08:01.730 に答える