Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“找到公共方法”;加上“;,但没有找到一个公开的;删除“;在symfony2实体中_Symfony_Doctrine Orm - Fatal编程技术网

“找到公共方法”;加上“;,但没有找到一个公开的;删除“;在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,异常就会消失!但是我还是不明白。。。为什么我不能有一个默认值?