0

当我在 Symfony 中保存一些数据时,我想显示一个模式窗口(Twitter Bootstrap 模式组件)。我使用doctrine:generate-module任务来构建模块,但当我单击“保存”按钮并保存数据时不知道如何显示窗口。有什么建议吗?

编辑:从学说:generate-admin(错误)更改为学说:generate-module(正确)

4

1 回答 1

3

对于保存当前对象的每个操作,生成器定义一个带有成功消息的flash消息。

您可以在生成器的操作模板中看到它们:

$this->getUser()->setFlash('notice', $notice);

Flashes 消息随后显示在名为_flashes.php. 如果一切正常,则在操作中定义并显示通知闪光:

<div class="notice">[?php echo __($sf_user->getFlash('notice'), array(), 'sf_admin') ?]</div>

您需要做的是_flashes.php在模板文件夹中创建一个文件并编写 javascript 以打开引导模式。就像是:

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
  </div>
  <div class="modal-body">
    <p><?php echo __($sf_user->getFlash('notice'), array(), 'sf_admin') ?></p>
  </div>
</div>

<script type="text/javascript">
    $('#myModal').modal('show')
</script>

本案例仅涵盖通知消息。您还必须涵盖错误之一。


更新:

由于您使用的是 Doctrine Generated Module 而不是 Doctrine Admin Generator,因此您必须这样做才能使用闪烁消息:

在您的操作中,找到processForm并添加通知:

protected function processForm(sfWebRequest $request, sfForm $form)
{
    $notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.';

    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
        $alumnos = $form->save();

        $this->getUser()->setFlash('notice', $notice);

        $this->redirect('alumnos/new');
        // $this->redirect('alumnos/edit?id=' . $alumnos->getId());
    }
    else
    {
        $this->getUser()->setFlash('error', 'The item has not been saved due to some errors.', false);
    }
}

然后您可以添加您之前创建的相同_flashes.php模板并包含它(在 中newSuccess.php,因为您在保存表单后将用户重定向到此操作):

<?php include_partial('flashes') ?>
于 2013-03-11T15:26:54.007 回答