0

「お問い合わせ」ページにフォームを作成したいと思います。私はこのチュートリアルに従っています。sfWidget を使用するには sfFrom クラスを拡張する必要がありますが、私のコードでは既に BaseController を拡張しています。

新しいクラスを作成せずにこれを行う解決策はありますか?

class InfoController extends BaseController
{
    /**
     *
     * @Route("/contactus", name="info_contactus_page")
     * @Template()
     */
    public function contactusAction()
    {
        return array();
    }
}
4

3 に答える 3

1

あなたはすべて間違っています。

symfony 1 はSymfony 2とは完全に異なります(この記事を確認してください: Symfony2 が symfony1 とどのように異なるか)。sf1 のチュートリアルに従って、sf2 でフォームを作成します。

代わりに、次のような sf2 のリソースを見つけてください。

あなたはフランス人なので、次のチュートリアルを読むことをお勧めします。

これらのチュートリアルを読み終わったら、ここに戻って、フォームの実装時に発生した問題について新しい質問をすることができます。

于 2012-10-29T13:40:34.480 に答える
0

コンポジションまたはインターフェイスを使用します。

あなたの場合、構成は解決策です。

PHP は多重継承を許可していません

于 2012-10-29T11:15:46.950 に答える
0

PHP5.4 を使用できる場合は、トレイトを使用してください: http://php.net/manual/en/language.oop5.traits.php

<?php 

trait SomeOtherControllerTrait {
    function SomethingSomethingSomething() { /* Something */ }
}

class InfoController extends BaseController {
    use SomeOtherControllerTrait;
    /* ... */
}

構成を使用して、多重継承と同様の結果を得ることができます。

編集: 質問の下のタグが Symfony2 に変更されたため: Symfony2 はこの状況を別の方法で処理したため、多重継承は必要ありません。受け入れられた答えはそれをよく説明しています。

于 2012-10-29T12:18:27.290 に答える