我安装了数据源插件数组。它不使用db表作为数据源。它是一个数组(源)。当我尝试使用蛋糕烘焙(或其他东西)烘烤时,它不会识别所使用的数组源,只识别我的数据库中的表。
我想将数据源数据库表的所有crud操作烘焙为我的数组数据源。我该怎么做?
ty advance
答案 0 :(得分:1)
设置数据源后。如果从根目录运行bake命令,则可以在其中看到bin
文件夹。
这将为您提供表列表
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中
如果要手动执行此操作,则可以照常创建Entity类和Table类。然后在UsersTable.php中添加以下功能:
public static function defaultConnectionName()
{
return 'OTHER_DATABASE_NAME';
}
答案 1 :(得分:0)
当您使用Cake Bake(我认为其他控制台命令)时,cake会查看DATABASE_CONFIG 中的默认值,除非 使用“-c”选项。它允许您选择不同的数据连接。您可能默认设置为数据库,而另一个则设置为数组数据源。
答案 2 :(得分:0)
尝试编辑你的文件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文件后,转到你的命令并使用这种格式的bake命令:
cake烘焙所有name_table -c name_your_connect
示例:
cake烘焙所有用户-c my_system_db