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';
}
我有一个 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';
}