我已经安装了数据源插件 Array。它不使用 db 表作为数据源。它是一个数组(来源)。当我尝试使用蛋糕烘焙(或其他东西)进行烘焙时,它无法识别使用的数组源,只有我的数据库的表。
我想将数据源数据库表的所有 crud 操作烘焙为我的数组数据源。我怎样才能做到这一点?
提前
我已经安装了数据源插件 Array。它不使用 db 表作为数据源。它是一个数组(来源)。当我尝试使用蛋糕烘焙(或其他东西)进行烘焙时,它无法识别使用的数组源,只有我的数据库的表。
我想将数据源数据库表的所有 crud 操作烘焙为我的数组数据源。我怎样才能做到这一点?
提前
设置数据源后。如果您从可以看到bin
文件夹的根目录运行 bake 命令。
这将为您提供表格列表
sudo bin/cake bake.bake model --connection OTHER_DATABASE_NAME
假设我们要为Users
餐桌烘焙
烘焙模型
sudo bin/cake bake.bake model TABLE_NAME --connection OTHER_DATABASE_NAME
在 cakephp 3.x 中
如果您想手动执行此操作,您可以照常创建实体类和表类。然后在 UsersTable.php 中添加这个函数:
public static function defaultConnectionName()
{
return 'OTHER_DATABASE_NAME';
}
当您使用 Cake Bake (我认为其他控制台命令)时,cake 将查看 DATABASE_CONFIG 中的默认值,除非您使用“-c”选项。它允许您选择不同的数据连接。您可能默认设置为您的数据库和数组数据源的不同设置。
尝试编辑你的文件 app.php:
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'aws.amazon-br.service',
//'port' => 'non_standard_port_number',
'username' => 'username',
'password' => 'passaword',
'database' => 'wp_my_site',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_TEST_URL', null),
],
/**
* The test connection is used during the test suite.
*/
'my_system_db' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'hostgator.dbsource.manager',
//'port' => 'non_standard_port_number',
'username' => 'my_systen',
'password' => 'secret_password',
'database' => 'my_system',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_TEST_URL', null),
],
],
保存 app.php 文件后,转到 yout pronpt 并使用以下格式的 bake 命令:
蛋糕烤所有 name_table -c name_your_connect
例子:
蛋糕烘焙所有用户 -c my_system_db