表单提交时出现Symfony错误....“必须是varchar的实例,给定字符串,”

时间:2011-09-20 17:44:07

标签: symfony varchar

运行Symfony2

提交表格后,我得到错误:

    Catchable Fatal Error: Argument 1 passed to Depot\StarterBundle\Entity\Application::setPropAddr() must be an instance of varchar, string given, called in C:\wamp\www\Symfony\vendor\symfony\src\Symfony\Component\Form\Util\PropertyPath.php on line 346 and defined in C:\wamp\www\Symfony\src\Depot\StarterBundle\Entity\Application.php line 211 

以下是有问题的街区:

 /**
 * Set prop_addr
 *
 * @param varchar $propAddr
 */
public function setPropAddr(\varchar $propAddr)
{
    $this->prop_addr = $propAddr;
}

/**
 * Get prop_addr
 *
 * @return varchar 
 */
public function getPropAddr()
{
    return $this->prop_addr;
}

如果我在setPropAddr()函数中从“\ varchar $ propAddr”中删除/ varchar,它就可以工作。但是这个实体是从命令行创建的,所以这里必须有一个更大的问题。

这是我的Application.orm.yml

中的一行
 prop_addr:
    type: string(255)

问题是什么?

1 个答案:

答案 0 :(得分:3)

public function setPropAddr(\varchar $propAddr)这显然是错误的,似乎它采用了DB类型并将其添加为Class TypeHint。通常你不应该用Doctrine2自动生成任何东西(会阻止你覆盖东西并修复错误生成的setter)