当我在Symfony中保存一些数据时,我想要显示一个模态窗口(Twitter Bootstrap Modal Component)。我使用doctrine:generate-module
任务来构建模块,但是当我点击" Save"时,我不知道如何显示窗口。按钮和数据已保存。有什么建议吗?
编辑:从doctrine:generate-admin(错误)更改为doctrine:generate-module(right)
答案 0 :(得分:3)
对于保存当前对象的每个操作,生成器使用成功消息定义a flash message。
您可以在action template of the generator:
中看到它们$this->getUser()->setFlash('notice', $notice);
闪烁消息随后显示在名为_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生成模块而不是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') ?>