【问题标题】:symfony - sfDoctrineGuardPlugin - creating custom userssymfony - sfDoctrineGuardPlugin - 创建自定义用户
【发布时间】:2011-05-03 12:07:41
【问题描述】:

我正在使用 sfDoctrineGuardPlugin,但遇到了一个小问题。

我有几种“用户类型”,即AdminsManagersAccount Holder

我需要的是能够创建这些用户并在创建它们时为每种类型提供特定的表单。

我真正想做的是,可能有一个指向 Create AdminCreate ManagerCreate Account Holder 之类的链接,它们希望为我正在尝试创建的用户创建表单。

我是否需要在插件中创建几个操作来适应这一点,即executeAdmin()executeManagers,然后调用我的特定小部件配置的自定义表单?

谢谢

【问题讨论】:

    标签: symfony1 symfony-1.4


    【解决方案1】:

    如果你想使用 admingen,我建议你创建 3 个基于 os sfguarduser 模型的模块,每个用户类型一个。
    然后,在每个 generator.yml 中,您可以在表单块中指定:

    表格:

    类:adminForm(例如)

    【讨论】:

    • @dxb 我已经按照你的建议做了。问题是,我正在扩展sfGuardUserProfile,而后者又扩展了sfGuardUserAdminForm。您可以查看我的表单:pastebin.com/fhczEeJt 我似乎无法将个人资料表单嵌入到我的用户表单中。有什么想法吗?
    • 我只需要在adminForm 中显示sfGuardUser 表中我需要的来自sfGuardUserProfile 的字段
    • 在您的 adminFormProfileForm 中,您似乎取消了表单的所有字段...也许这就是您在 adminForm 中看不到嵌入配置文件表单的原因。
    • 是的,这是因为我有 2 个表格,adminFormManagerForm。我正在取消设置一些字段,因为我需要一些字段以一种形式出现,而一些字段以另一种形式出现。所有未设置的字段都在配置文件表中,但我的adminForm 不需要。另外,在我的generator.yml 文件中,我调用的是哪种形式? adminForm 还是 adminFormProfileForm?他们中的任何一个都会引发无效小部件的错误。谢谢
    • @dxb 你知道为什么会这样吗?
    【解决方案2】:

    您可以将这些用户类型定义为 sfGuardUser 类的子类。然后,每种类型都有一个表单,继承自 sfGuardUserForm。

    在您的模块中,如果某些控制器和模板代码非常具体,您可以为每种类型创建一个操作,或者您创建一个单独的操作,对某些参数进行测试以使用正确的表单类。

    哦,不要在插件中添加任何代码。这是一个非常糟糕的做法。相反,在您的应用程序的自定义模块中扩展插件操作。

    【讨论】:

    • 好的,所以我创建了以下表单:adminForm.class.phpmanagersForm.class.phpaccountHolderForm.class.php。所有这些都扩展sfGuardUserAdminForm。我创建了一个sfGuardUser 管理模块和actions.class.php,它扩展为:sfGuardUserActions extends autoSfGuardUserActions。然后我会在这里对每个表格进行所有操作吗?谢谢
    • 嗨。这取决于你。如果只有表单和表单验证代码不同,请执行单个操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多