0

モデル クラス (KanoonGood という名前) があり、対応する Form クラスは次のとおりです。

class KanoonGoodForm extends BaseKanoonGoodForm
{
    public function configure()
    {
        $this->widgetSchema['count_num']->setAttribute('size', '1');
        $this->widgetSchema['price']->setAttribute('size', '1');
    }
}

誰かがこのモデル クラスに基づいてモジュールの新しいアクションを呼び出すと、1 つの KanoonGoodForm だけでなく、20 個の KanoonGoodForm を表示する必要があります。

そこで、20 個の KanoonGoodForms が埋め込まれたフォーム (KanoonGoodsGroup という名前) を作成しました。

class KanoonGoodsGroupForm extends sfForm
{
    public function configure() 
    { 
        for ($i = 0; $i < 20; $i++) 
        {
            $this->embedForm('good_'.$i, new KanoonGoodForm());
        }
    }
}

次に、モジュールの新しいアクションを次のように書き直します。

public function executeNew(sfWebRequest $request)
{
    $this->form = new KanoonGoodsGroupForm();
}

newSuccess テンプレートでは、このフォームを _form.php パーシャルに渡しました。

 <?php include_partial('form', array('form' => $form)) ?>

_form.php パーシャルは次のようになります。

<?php use_stylesheets_for_form($form) ?>
<?php use_javascripts_for_form($form) ?>
<form action="<?php echo url_for('good/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
<?php if (!$form->getObject()->isNew()): ?>
<input type="hidden" name="sf_method" value="put" />
<?php endif; ?>
  <table>
    <tfoot>
      <tr>
        <td colspan="2">
          <?php if (!$form->getObject()->isNew()): ?>
            &nbsp;<?php echo link_to('Delete', 'good/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'are you sure?')) ?>
          <?php endif; ?>
          <input type="submit" value="save" />
        </td>
      </tr>
    </tfoot>
    <tbody>
    <?php echo $form ?>
    </tbody>
  </table>
</form>

問題は、ブラウザから新しいアクションを呼び出すと、何も表示されず、エラーさえ表示されないことです! symfony 開発ツールがなくても、ただの白いページです!

これにはまりました。

4

0 に答える 0