Symfony设计问题 - 如何在应用程序之间共享表单?

时间:2011-05-05 07:03:19

标签: forms symfony1

我正在Symfony开发一个网站,我不确定处理这种情况的最佳方法是什么。

我正在创建一个派对预订系统。任何人都可以去我的前端应用程序并提交新的预订。一旦完成,他们只会得到一个确认屏幕,他们无法编辑它。容易。

只有某些用户才能访问管理员应用程序(它可能只是通过内部网络来保护,但这并不重要,只是假设它只能由管理员用户访问)。他们将能够查看提交的预订列表。容易。

我的问题在于允许管理员用户编辑现有预订时重复使用代码。当您在Symfony中执行generate-module时,生成的模块(作为我假设的新手就是构造事物的一个很好的例子)将表单创建为部分。我必须为我的使用(大量的Javascript等)自定义这个表单,所以当然我想重新使用这个代码,以便能够将现有的预订加载到这个表单中。但似乎没有办法在应用程序之间分享这部分内容(我看过有人提到制作插件......但这对于这种用途来说似乎很复杂)。

我考虑使用IFrame从前端加载表单,只是传递“id”参数以在编辑模式下加载它,但这意味着编辑模式不安全 - 任何人都可以转到表单上前端并传递此参数以编辑预订。

我还考虑将所有表单显示代码(HTML,Javascript等)放在表单对象的方法中,但这似乎不是MVC - 所有显示代码都在表单中。但这只是因为我正在以与模型相同的方式思考形式 - 是吗?

我觉得这应该是一种常见的情况。您可以在应用之间共享模型和表单,为什么不能共享此常用表单显示代码?

谢谢!

2 个答案:

答案 0 :(得分:1)

您首先应该重新考虑有2个申请。您不仅会遇到代码重用问题,还会遇到i18n,测试和其他问题。我发现为前端和后端用户提供一组具有不同模块的应用程序要容易得多。您可以为每个模块配置安全性。您可以为所有用户提供一个登录表单,并根据他们的凭据将其重定向到适当的模块。

答案 1 :(得分:0)

你可以在同一个应用程序中的模块之间重用部分,但你似乎在谈论两个不同的应用程序(前端和后端),所以据我所知,唯一的方法是复制&将部分从一个应用程序粘贴到另一个应用程序...