配置cake bake以启用级联删除

时间:2016-09-08 06:28:04

标签: cakephp cakephp-3.0 cake-bake

我正在使用cakephp v3.3.3

使用cake bake自动生成代码后,我有这个php文件BallsTable.php,它有下面的initialize()函数;

public function initialize(array $config)
{
    parent::initialize($config);

    $this->table('balls');
    $this->displayField('id');
    $this->primaryKey('id');

    $this->belongsTo('Baskets', [
        'foreignKey' => 'basket_id',
        'joinType' => 'INNER'
    ]);
    $this->hasMany('BallRecords', [
        'foreignKey' => 'ball_id',
    ]);
}

但是,上面的initialize()函数不允许我进行级联删除。

我需要手动修改如下所示的initialize()以启用级联删除。但这很麻烦,因为每次烘焙新蛋糕都会覆盖文件。

    $this->hasMany('BallRecords', [
        'foreignKey' => 'ball_id',
        //http://book.cakephp.org/3.0/en/orm/deleting-data.html
        //manually add the 2 lines below to enable cascading delete
        'dependent' => true,
        'cascadeCallbacks' => true,
    ]);

有没有办法配置蛋糕烘焙自动生成手动启用级联删除的代码?

编辑:添加了赏金以邀请配置烘焙模板的答案。

1 个答案:

答案 0 :(得分:0)

不幸的是......不......

从Cake Back Model生成器,您可以配置与Cascading选项的关联。

您可以通过输入命令bin/cake bake model --help

来查看蛋糕烘焙模型选项的帮助
$ bin/cake bake model --help

Welcome to CakePHP v3.3.3 Console
---------------------------------------------------------------
App : src
Path: C:\wamp\www\student_logic\src\
PHP : 5.5.12
---------------------------------------------------------------
Bake table and entity classes.

Usage:
cake bake.bake model [subcommand] [options] [<name>]

Subcommands:

all  Bake all model files with associations and validation.

To see help on a subcommand use `cake bake.bake model [subcommand] --help`

Options:

--help, -h             Display this help.
--verbose, -v          Enable verbose output.
--quiet, -q            Enable quiet output.
--plugin, -p           Plugin to bake into.
--force, -f            Force overwriting existing files without
                       prompting.
--connection, -c       The datasource connection to get data from.
                       (default: default)
--theme, -t            The theme to use when baking code.
                       (choices: Bake|Migrations)
--table                The table name to use if you have
                       non-conventional table names.
--no-entity            Disable generating an entity class.
--no-table             Disable generating a table class.
--no-validation        Disable generating validation rules.
--no-rules             Disable generating a rules checker.
--no-associations      Disable generating associations.
--no-fields            Disable generating accessible fields in the
                       entity.
--fields               A comma separated list of fields to make
                       accessible.
--no-hidden            Disable generating hidden fields in the entity.
--hidden               A comma separated list of fields to hide.
--primary-key          The primary key if you would like to manually set
                       one. Can be a comma separated list if you are
                       using a composite primary key.
--display-field        The displayField if you would like to choose one.
--no-test              Do not generate a test case skeleton.
--no-fixture           Do not generate a test fixture skeleton.

Arguments:

name  Name of the model to bake. Can use Plugin.name to bake plugin
      models. (optional)

Omitting all arguments and options will list the table names you can
generate models for