Cakephp 模型只读取默认 MySQL 模式 -> 在数据源默认中找不到模型

Cakephp model only read default MySQL schema -> model was not found in datasource default

我有一个 MySQL 数据库,其中有两个模式,默认一个和另一个称为 rabbit_db。当我尝试访问模型时,它抛出以下异常:

Table rabbit_db.api_promos for model Promo was not found in datasource default.

当我在默认架构中创建相同的 table 时,它工作正常。

这是我的模型:

class Promo extends BaseModel {
  public $useTable = 'rabbit_db.api_promos';
  public $name = 'Promo';
}

我能做什么?

您需要更改默认数据源或在 /app/Config/database.php 中添加另一个数据源。

Here is the documentation 关于设置数据源(假设您使用的是 CakePHP 2.x)。

并且 here is an example 展示了如何指定模型应使用的数据源。

该示例中的重要部分(在 database.php 中定义第二个数据源之后)是在模型中设置变量 $useDbConfig,以便它知道要使用哪个数据源。在您的情况下,它可能看起来像这样:

class Promo extends BaseModel {
  public $useTable = 'rabbit_db.api_promos';
  public $name = 'Promo';
  public $useDbConfig = 'rabbit_db';
}