Hi,
I tried to overload the bake template for seed migration command.
My objective is to obtain this :
<?php use Migrations\AbstractSeed; /** * Table seed. */ class TableSeed extends AbstractSeed { /** * Run Method. ... */ public function run() { $data = [ table data ]; $table = $this->table('table'); $this->execute('SET foreign_key_checks=0'); $this->execute('TRUNCATE TABLE ' . $table->getName()); $table->insert($data)->save(); $this->execute('SET foreign_key_checks=1'); } }
Instead of the actual template :
<?php use Migrations\AbstractSeed; /** * Table seed. */ class TableSeed extends AbstractSeed { /** * Run Method. ... */ public function run() { $data = [ table data ]; $table = $this->table('table'); $table->insert($data)->save(); } }
I follow the documentation here
So I copied the seed.ctp file into my App/src/Template/Bake/Seed/ folder.
I modified it to this :
<% /** [License] */ %> <?php use Migrations\AbstractSeed; /** * <%= $name %> seed. */ class <%= $name %>Seed extends AbstractSeed { /** * Run Method. ... */ public function run() { <% if ($records): %> $data = <%= $records %>; <% else: %> $data = []; <% endif; %> $table = $this->table('<%= $table %>'); $this->execute('SET foreign_key_checks=0'); $this->execute('TRUNCATE TABLE ' . $table->getName()); $table->insert($data)->save(); $this->execute('SET foreign_key_checks=1'); } }
But the command bin\cake bake seed --data Table
doesn’t change anything, I obtain the default file.
So I create a plugin named Test with Bake.
I put my file seed.ctp into the folder plugins/Test/src/Template/Bake/Seed/
But the command bin\cake bake seed --data --theme Test Table
doesn’t change anything too.
Am I doing something wrong ?
I tried to read the bake code but I clearly don’t understand how the bake template works.
I am using cakephp v3.3.15
Thanks for your help.