提问者:小点点

大写的烘焙桌


我安装蛋糕3.0在一个数据库以外的公约,所有的表都是大写字母使烘焙返回此错误:

异常:SQLSTATE[42S02]:找不到基表或视图:1146 table'db。c_a_d_b_e_m'不存在于[/var/www/project/vendor/cakephp/cakephp/src/Database/Schema/Collection.php,第130行]

你有办法设置Inflector来识别大写字母的烘焙桌吗?


共2个答案

匿名用户

我发现这在使用非标准表名时非常有用:

$> php bin/cake.php bake model PLURAL_MODEL_NAME_HERE --table NON_STANDARD_TABLE_NAME_HERE

然后,您可以运行模板/控制器

$> php bin/cake.php bake controller PLURAL_MODEL_NAME_HERE
$> php bin/cake.php bake template PLURAL_MODEL_NAME_HERE

匿名用户

不幸的是,如果现有数据源不符合约定,烘焙实用程序无法为您烘焙所有内容。您需要自己创建表对象,并在其中设置自定义表名。因此,对于您所展示的示例,创建一个src/Model/Table/Cadbem。php文件并设置自定义表名,它是初始化方法:

namespace App\Model\Table;

use Cake\ORM\Table;

class CadbemTable extends Table
{

    public function initialize(array $config)
    {
        $this->table('CADBEM');
    }

}

一旦你有了它,你可以根据这个表对象用烘焙实用程序创建控制器/视图。