用大写字母烘焙表

Posted

技术标签:

【中文标题】用大写字母烘焙表【英文标题】:Bake Tables with Uppercase 【发布时间】:2015-07-01 13:39:45 【问题描述】:

我将 cake 3.0 安装在约定之外的数据库中,所有表都带有大写字母,使得 bake 返回此错误:

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

你有什么方法可以设置 Inflector 来识别大写字母的烘焙表吗?

【问题讨论】:

【参考方案1】:

我发现这在使用非标准表名时很有帮助:

$> 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

【讨论】:

【参考方案2】:

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

namespace App\Model\Table;

use Cake\ORM\Table;

class CadbemTable extends Table


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


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

【讨论】:

感谢您的帮助,我按照您说的创建了表格对象,但仍然报错。 linux 上 cake3 的 bin 文件夹内运行 ./cake bake model CADBEM

以上是关于用大写字母烘焙表的主要内容,如果未能解决你的问题,请参考以下文章

用大写字母命名 django 应用程序可以吗?

各位大侠,怎样用VBA小写字母转大写字母

请问SQL语句必须用大写,是否规范

sql server数据库表中各字段名需要大写吗

考试时SQl语言要大写还是小写呢?

easyui主从表实现