2

スキーマから生成されるフォームを Symfony 1.4/Doctrine で作成しました。フィールド ラベル、検証、ウィジェットを変更してデータベースからデータを取得し、スキーマにない新しいフィールドを生成できます。

問題は、フォームが $form 変数によって生成され、作成した新しいフィールドがこのフィールドのセットの一番下にあることです。スキーマ生成フィールドのどこかに挿入するにはどうすればよいですか。

ノート 。私がしたいのは、パスワードとパスワードの確認だけです。パスワードはスキーマにのみありますが、パスワードの確認はありません。

4

3 に答える 3

2

sfForm::useFields() は symfony 1.3 の新しい関数で、開発者がフォームが使用するフィールドと表示する順序を正確に指定できるようにします。非表示以外のすべてのフィールドがフォームから削除されます。

フォームSymfony 1.4を使用した詳細から

于 2014-02-02T20:09:19.443 に答える
1

テンプレートまたはビューで各フィールドを個別にレンダリングすることで、変更を加えることができます。たとえば、user、password、confirm_password フィールドがある場合は、次のことができます。

//template or view
<?php echo $form['user']->renderRow()?><br/>
<?php echo $form['password']->renderRow()?><br/>
<?php echo $form['confirm_password']->renderRow()?>

より複雑なことをしたい場合は、Jobeet Form Exampleを参照してください。

于 2011-03-17T22:11:11.917 に答える
0

setPositionsfromを使用してWidgetSchema、すべてのフィールドの位置を設定できます。

<?php

$this->getWidgetSchema()->setPositions(array(
    0 => 'field_one',
    1 => 'field_two',
    // etc...
));

または、次のようにして、フォーム全体でフィールドを「移動」できますmoveField

<?php

// Moving to top
$this->getWidgetSchema()->moveField('field_one', sfWidgetFormSchema::FIRST);
// Moving before 'field_two'
$this->getWidgetSchema()->moveField('field_three', sfWidgetFormSchema::BEFORE, 'field_two');

//    *  Available actions are:
//    *
//    *  sfWidgetFormSchema::BEFORE
//    *  sfWidgetFormSchema::AFTER
//    *  sfWidgetFormSchema::LAST
//    *  sfWidgetFormSchema::FIRST
于 2015-12-22T18:42:17.657 に答える