0

当我提交我的表格时,我得到了这个例外:

Found the public method "addRemote", but did not find a public "removeRemote" on class App\CoreBundle\Entity\Scene

奇怪的想法是存在 remove 方法......但我自己写的(当我做 php app/console 学说:generate:entities)学说并没有生成它。我做错什么了吗?

 /**
 * @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;
    }
4

1 回答 1

2

你有比这更大的问题;你在滥用你的表格:)

Add.. 和 Remove... 方法应该用于关系,而不是根据您的代码的列。此外,addremove方法都必须接受将被添加或删除的参数。

如果您仍然需要一个数组,那么 getRemotes() 方法应该返回 key=>value 数组。Adder 和 remover 稍后将根据用户在choice表单类型中选择的内容获取该密钥。

于 2013-05-21T16:59:37.287 回答