我正在尝试使用 CakePHP 编写一个网络应用程序,并且像大多数网络应用程序一样,我想创建一个安装程序来检测数据库是否已初始化,如果没有,则执行安装过程。
这个过程将是完全自动化的(它假设数据库本身已经存在,并且它通过匿名帐户被授予完全管理访问权限,没有密码......这是一个沙盒环境,所以不用担心安全问题),因此它需要能够检测(无论请求如何!)数据库表是否已创建和初始化,如果没有,则透明地执行该初始化,然后仍然满足用户的原始请求。
我考虑过编写一种 Bootstrap Controller ,通过它路由所有请求,并运行单个 SQL 查询来确定数据库表是否存在,但这看起来很麻烦(并且 Controller 需要一个相应的模型,这不需要在这里就是这种情况)。另一种可能性是重写 AppModel 并在其中放置相同的测试,但我不确定该怎么做,因为没有任何相关文档。
提前致谢!
tl;dr version:J2EE servlet 的“init()”方法的 CakePHP 等效项(或者如何为 CakePHP 编写等效项)是什么?
最佳答案
检查 AppError 类 - 可能存在缺少数据库表错误,您可以从那里覆盖并运行创建数据库表 SQL?
关于php - 在 CakePHP 框架内自动创建数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653406/