0

次のテンプレートを使用してフォームをレンダリングしようとしています。

function FacebookForm($fbFields) {

        $actions = new FieldSet(
            new FormAction('doFaceBookForm', 'Register')
        );

        $memberfields = singleton('XEUser')->getMemberFormFields();

        $fields = new FieldSet();
        $reqFields = array();
        foreach($fbFields as $key => $value){
            switch($value){
                case 'Gender':
                    $fields->push($memberfields->fieldByName('Gender'));
                    $reqFields[] = 'Gender';
                    break;
                case 'DateOfBirth':
                    $fields->push($memberfields->fieldByName('DateOfBirth'));
                    $reqFields[] = 'DateOfBirth';
                    break;
            }
        }
        $validator = new RequiredFields($reqFields);

        $form = new Form($this, 'FaceBookForm', $fields, $actions,$validator);
        $form->disableSecurityToken();

        return $form->renderWith(array('FacebookController','Page'));
        //return $form;

    }

フォームだけreturn $formが表示されますが、デフォルトの contentController.ss にあるため、新しいテンプレートを作成して追加しましreturn $form->renderWith(array('FacebookController','Page'));た。これを行うと、ページにあるはずのすべてのものを取得できますが、スタイルがまったく適用されず、フォームも表示されません。ここに私の FacebookController テンプレートがあります:

<div id="left">

    <h2>Thankyou for signing up with your Facebook account</h2>
    <p>The following details could not be obtained from your Facebook account, please enter them now.</p>
    $form
</div>

<div id="right">

</div>

誰でもこれに光を当てることができますか?

4

1 に答える 1

1

テンプレートでメソッドの名前を使用してみてください。

$FacebookForm

または、Formクラスをサブクラス化して、カスタムforTemplate()メソッドを使用することもできます。以下の詳細情報。

見る:

于 2012-07-25T17:28:36.040 に答える