3

我已经安装了数据源插件 Array。它不使用 db 表作为数据源。它是一个数组(来源)。当我尝试使用蛋糕烘焙(或其他东西)进行烘焙时,它无法识别使用的数组源,只有我的数据库的表。

我想将数据源数据库表的所有 crud 操作烘焙为我的数组数据源。我怎样才能做到这一点?

提前

4

3 回答 3

2

设置数据源后。如果您从可以看到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';
    }
于 2019-01-09T12:17:04.557 回答
0

当您使用 Cake Bake (我认为其他控制台命令)时,cake 将查看 DATABASE_CONFIG 中的默认值,除非您使用“-c”选项。它允许您选择不同的数据连接。您可能默认设置为您的数据库和数组数据源的不同设置。

于 2013-03-26T10:24:46.993 回答
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 文件后,转到 yout pronpt 并使用以下格式的 bake 命令:

蛋糕烤所有 name_table -c name_your_connect

例子:

蛋糕烘焙所有用户 -c my_system_db

于 2017-05-04T17:55:20.710 回答