0

doctrine で生成されたフォームを使用して更新できないエンティティを作成しました。アクションは次のとおりです。

    public function executeEdit(sfWebRequest $request)
{

    $this->forward404Unless($id = $request->getParameter('id'), "Required parameter 'id' must be present in request");

    $this->forward404Unless($cart = Doctrine::getTable('ShoppingCart')->find($id), sprintf("No object could be retrieved by %s", $id));
    $this->id = $id;

    $this->form = new ShoppingCartForm($cart);

    if($request->isMethod(sfRequest::POST)) {
        $this->form->bind($request->getParameter('shopping_cart'));
        if ($this->form->isValid())
        {
            $cart = $this->form->save();

            $this->redirect(link_to('cart/show?id='.$cart->getId()));
        }
    }
}

フォームの isNew() メソッドは false を返しますが、sf_method は PUT に設定されています。sfRequest::PUT doctrine を使用すると、その ID を持つ新しいエンティティを追加しようとします。そのように振る舞うべきではないように思われるので、何が間違っているのでしょうか?

4

0 に答える 0