我有一个显示页面的控制器,具体取决于用户在最初注册网站时是否已注册了某些内容。
如果他们的组织已经注册,页面会显示他们可以编辑的个人资料等。(这位工作正常) 但是,如果他们没有页面应该显示他们可以注册的注册页面
我使用以下方式完成了这项工作:
$this->call('\Controllers\RegisterOrgController');
用户可以选择免费的基本套餐或高级/高级加套餐,这需要将用户重定向到付款页面。我的问题是,虽然这确实显示了注册页面,但它只是在他们选择' premium'或者' premium plus'并且没有显示付款页面。
我知道最好从个人资料页面扩展组织注册页面以使其使用该功能;但是,由于组织配置文件页面主要用于显示配置文件,我让它扩展自己的控制器(从我的回忆中,你不能扩展两个类)并使用注册组织控制器来显示表单。
我已经看到了在javascript,angularJS asp.net/C#中重定向网页的方法,但是当适用于PHP时,它们都没有工作到目前为止
我正考虑设置标题:
header('location: ' . [function to get URL for new location]);
但这不会起作用,因为路径是一个子路径(注册/组织)和'注册'如果用户已登录且组织配置文件具有自己的路径名(组织配置文件),则无法查看。
TL; DR:有一种方法可以通过调用另一个控制器执行此操作的控制器来显示页面,并且仍然具有该功能,尽管路径不同
任何帮助都一定会受到赞赏, 提前谢谢!
答案 0 :(得分:0)
好的,所以我弄清楚在注册流程方面我做错了什么。 我的想法还可以,但是执行起来很糟糕,所以我想我会分享解决方案以防万一有人遇到类似的问题(虽然这可能在统计上不太可能)
问题
注册过程允许用户在最初注册该网站时,或在他们注册并验证其帐户后注册组织。 如果用户已登录,则注册页面不应该是可查看的;但是,组织注册页面源于此页面,由于路径不同而导致冲突。
解决方案
更改组织配置文件控制器以重定向到组织注册页面,而不是调用注册控制器。
更改注册控制器以显示页面,即使用户已登录以保持注册流程
在go()函数中检查页面的子路径,如果是'register',运行未经验证的函数以确保登录时没有显示注册表单。这将允许您按照组织的注册流程进行操作,但不显示注册页面。
希望这有助于任何人在注册流程中遇到类似问题!