2

我们使用的是 cakePHP 2.7.x。

我的问题是重写核心类——或者专门为方法添加功能而不修改核心代码。

我需要为该方法添加一些功能: cake/lib/Cake/Model/Datasource/DboSource->BuildColumn()

文档说将整个类放在 app 下的同一位置,然后 App 加载器将加载它。所以我将课程复制到 marketplace/Model/Datasource/DboSource 并添加了我的代码片段。不幸的是,一切都没有改变。

如果我将更改直接添加到原始方法中,一切正常。

上下文: 在该方法中,所有默认值都被不加选择地引用。因此,类似的东西DEFAULT CURRENT_TIMESTAMP被解释和运行DEFAULT 'CURRENT_TIMESTAMP',显然不能按预期工作。具体来说,它"Syntax error or access violation: 1067 Invalid default value for 'created'"在尝试烘烤固定装置时给了我错误。

我被引导到问题的原因,以及 cakePHP 1.2.6 的建议修复,这里: http ://mamchenkov.net/wordpress/2010/04/21/unit-tests-with-cakephp/

4

2 回答 2

1

根据文档

您可以覆盖框架中的几乎每个类,App 和 Configure 类除外。每当您想执行此类覆盖时,只需将您的类添加到您的 app/Lib 文件夹中即可模仿框架的内部结构

所以路径应该是marketplace/Lib/Model/Datasource/DboSource,而不是marketplace/Model/Datasource/DboSource

于 2017-01-26T19:59:40.967 回答
0

所以显然我的流浪机器出了点问题。在我重新启动之后,就像布鲁诺费里拉概述的那样完美地工作!

于 2017-01-26T23:09:24.887 回答