我有一个Book
实体,Author
关系:
/**
* Book
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="App\BookBundle\Entity\BookRepository")
*/
class Book {
/**
* @var integer
*
* @ORM\Column(name="author_id", type="integer")
*
*/
private $authorId;
/**
*
* @ORM\ManyToOne(targetEntity="Author", inversedBy="books")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
private $author;
//the rest of entity...
}
/**
* Author
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="App\BookBundle\Entity\AuthorRepository")
*/
class Author {
/**
* @ORM\OneToMany(targetEntity="Book", mappedBy="author")
*/
private $books;
//the rest of entity...
}
我的表单BookType
包含author_id
字段。
class BookType extends AbstractType {
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('authorId', 'hidden', array(
))
//the rest of the form...
author_id
输入被隐藏,其值在客户端填充自动完成功能。
现在我需要在提交表单时在服务器端验证它。
如何验证给定author_id
的作者是否存在?我无法相信在Symfony / Doctrine中没有内置的解决方案。