注册时在sfGuardUser上自动生成字段值

时间:2011-01-22 23:26:17

标签: symfony1 symfony-1.4 sfguard autogeneratecolumn

我正在构建一个使用sfDoctrineGuardPlugin进行用户/身份验证的Symfony 1.4项目。我的用户表上有一个名为“access_token”的字段,我希望在用户注册时填充自动生成的值。我看到,对于注册,sfGuardRegisterForm用于验证。不幸的是,当我从命令行运行./symfony doctrine:build-forms时,这个表单似乎没有被扩展,这意味着我无法在不编辑插件的情况下在那里生成访问令牌。

或者,我正在考虑修改sfRequest参数,以便在尝试通过此表单进行验证之前手动设置“access_token”值。但是,由于我允许用户通过前端应用程序和API应用程序注册,这意味着我必须确保在两个地方手动填充此参数值,这似乎效率低下。然而,也许这实际上是正确的方法,并且尝试修改表单并不理想。

任何输入/建议?有人会做我在这里列出的想法吗?

修改:我已经在名为sfGuardUser的{​​{1}}模型上创建了一个公共静态方法,该方法返回值。我只想找出在我的项目代码中调用它的最佳位置。

1 个答案:

答案 0 :(得分:1)

sfDoctrineGuardPlugin不提供用户注册功能。这就是为什么你必须自己实现它。因此,在您的控制器中,您可以像使用symfony一样填充字段:

class myActions extends sfActions {
    public function executeRegistration(sfWebRequest $request) {
        ...
        $form = new myRegisterForm();
        $form->setDefault('access_token', sfGuardUser::generateAccessToken());
        ...
    }
}

access_token窗口小部件应该是sfWidgetFormInputHidden的实例。 希望这会有所帮助。