我正在构建一个使用sfDoctrineGuardPlugin进行用户/身份验证的Symfony 1.4项目。我的用户表上有一个名为“access_token”的字段,我希望在用户注册时填充自动生成的值。我看到,对于注册,sfGuardRegisterForm
用于验证。不幸的是,当我从命令行运行./symfony doctrine:build-forms
时,这个表单似乎没有被扩展,这意味着我无法在不编辑插件的情况下在那里生成访问令牌。
或者,我正在考虑修改sfRequest
参数,以便在尝试通过此表单进行验证之前手动设置“access_token”值。但是,由于我允许用户通过前端应用程序和API应用程序注册,这意味着我必须确保在两个地方手动填充此参数值,这似乎效率低下。然而,也许这实际上是正确的方法,并且尝试修改表单并不理想。
任何输入/建议?有人会做我在这里列出的想法吗?
修改:我已经在名为sfGuardUser
的{{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
的实例。
希望这会有所帮助。