我在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 ();
}
有可能吗?我怎么能这样做?
答案 0 :(得分:0)
在任何情况下都不应从模型访问Controller。
您想要执行哪种查询?
如果要通过relName检查Release是否在数据库中是唯一的,请在该字段上使用Doctrine的UniqueValidator。
希望有所帮助