我正在使用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,
]);
有没有办法配置蛋糕烘焙自动生成手动启用级联删除的代码?
编辑:添加了赏金以邀请配置烘焙模板的答案。
答案 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