【问题标题】:Validation Symfony2 with query to database验证 Symfony2 并查询数据库
【发布时间】:2012-10-15 15:08:50
【问题描述】:

我在 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 ();
}

有可能吗?我该怎么做?

【问题讨论】:

    标签: forms validation symfony callback


    【解决方案1】:

    在任何情况下都不应从模型访问控制器。

    您要执行哪种查询?

    如果您想通过 relName 检查 Release 在数据库中是否唯一,请在该字段上使用 Doctrine 的 UniqueValidator。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多