“找到公共方法”;加上“;,但没有找到一个公开的;删除“;在symfony2实体中
当我提交表格时,我得到以下例外:“找到公共方法”;加上“;,但没有找到一个公开的;删除“;在symfony2实体中,symfony,doctrine-orm,Symfony,Doctrine Orm,当我提交表格时,我得到以下例外: Found the public method "addRemote", but did not find a public "removeRemote" on class App\CoreBundle\Entity\Scene weired认为删除方法存在。。。 但我自己写的(当我写php应用程序/控制台条令:生成:实体时)条令并没有生成它。我做错什么了吗 /** * @var array $remote * * @ORM\Column(name="
Found the public method "addRemote", but did not find a public "removeRemote" on class App\CoreBundle\Entity\Scene
weired认为删除方法存在。。。
但我自己写的(当我写php应用程序/控制台条令:生成:实体时)条令并没有生成它。我做错什么了吗
/**
* @var array $remote
*
* @ORM\Column(name="remote", type="array", nullable=true)
*/
private $remote;
/**
* Set remote
*
* @param array $remote
* @return Scene
*/
public function addRemote($value, $key=null) {
if($key!=null){
$this->remote[$key] = $value;
}else{
$this->remote[] = $value;
}
return $this;
}
/**
* Remove remote
*/
public function removeRemote(){
unset($this->remote);
}
我也试过:
/**
* Remove remote
*/
public function removeRemote($key=null){
if($key!=null && array_key_exists($key, $this->remote)){
unset($this->remote[$key]);
}
unset($this->remote);
return $this;
}
你有比这更大的问题;您正在滥用表单:) 加上。。并删除。。。方法应该用于关系,而不是代码中的列。另外,
add
和remove
方法都必须接受要添加或删除的参数
如果仍然需要数组,则getRemotes()方法应返回key=>value数组。Adder和remover稍后将根据用户在
choice
表单类型中选择的内容获取该密钥。这里只是一个猜测,可能它没有“注册”该方法没有返回任何内容。我认为removeSomething需要一个参数来指定要删除的元素。@SamJanssens我添加了一个返回语句,但仍然…@Pazi这是我第一次尝试!我想能够删除只是指定的索引,但由于它不工作,我使它更简单。。。看我的edit@Pazi我想你指出了一些事情!如果我没有将默认值设置为$key,异常就会消失!但是我还是不明白。。。为什么我不能有一个默认值?