PHP: 在另一个controller中调用controller显示一个页面

PHP: display a page by calling controller in another controller

我有一个控制器,它根据用户在最初注册网站时是否已经注册了某个页面来显示页面。

如果他们的组织已经注册,页面会显示他们的个人资料,他们可以编辑等等。(那位工作正常) 但如果他们没有,该页面应该显示一个注册页面,他们可以在那里注册

我使用以下方法完成此操作:

$this->call('\Controllers\RegisterOrgController');

用户可以选择免费的基本套餐或 premium/premium 加值套餐,后者需要将用户重定向到付款页面。我的问题是,虽然这确实显示了注册页面,但它只是在组织选择 'premium' 或 'premium plus' 时注册了组织,而没有显示付款页面。

我知道最好从个人资料页面扩展组织注册页面以使其使用该功能;但是,由于组织配置文件页面主要用于显示配置文件,因此我让它扩展了自己的控制器(根据我的记忆,您不能扩展两个 类)并使用注册组织控制器来显示表单。

我已经在 javascript, angularJS asp.net/C# 中看到了重定向页面的方法,但是 none 在针对 PHP

进行调整时,其中的 none 到目前为止仍然有效

我正在考虑设置页眉:

header('location: ' . [function to get URL for new location]);

但这不起作用,因为路径是子路径 (register/organisation),如果用户已登录并且组织配置文件有自己的路径名(组织),则无法查看 'register' -个人资料)。

TL;DR: 有一种方法可以通过调用一个控制器来显示页面,该控制器从另一个控制器执行此操作并且仍然具有功能,尽管路径不同

任何帮助都将不胜感激, 提前致谢!

好的,所以我知道在注册流程方面我做错了什么。 我的想法是好的,但执行起来很糟糕,所以我想我会分享解决方案以防万一有人遇到类似的问题(尽管这在统计上可能不太可能)

问题

注册过程允许用户在最初注册网站时或在注册并验证帐户后注册组织。 如果用户已登录,则注册页面不应该是可见的;但是,组织注册页面源自此页面,由于路径不同而导致冲突。

解决方案

  • 更改组织配置文件控制器以重定向到组织注册页面,而不是调用注册控制器。

  • 更改注册控制器以显示页面,即使用户已登录以保持注册流程

  • 在 go() 函数中检查页面的子路径,如果它是 'register',运行 未经身份验证的函数以确保注册表永远不会登录时显示。这将允许您遵循组织的注册流程,但不会显示注册页面。

希望这对在注册流程中遇到类似问题的任何人有所帮助!