Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 在烘焙任何文件之前计划并创建数据库?_Cakephp_Cakephp 3.0 - Fatal编程技术网

Cakephp 在烘焙任何文件之前计划并创建数据库?

Cakephp 在烘焙任何文件之前计划并创建数据库?,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我对cakephp(3)真的是个新手。我有一个关于烘焙模型、视图和控制器的一般性问题 在烘焙任何m、v之前,我是否必须完全计划并创建数据库方案。还是c 在扩展数据库方案时,我害怕覆盖代码。我在想这样的情况: 我有两个表“文章”和“用户”。我烘焙了mvc-s,拥有一个小而完整的网站。出于某些验证器原因(例如),我调整了用户模型/实体 现在,两周后,我想添加一个“组”表,其中一个用户可以属于多个组 通常,我可以重新制作用户的mvc文件。但那会覆盖我的整个网站 我会犯错吗?扩展表时是否必须手动修改mv

我对cakephp(3)真的是个新手。我有一个关于烘焙模型、视图和控制器的一般性问题

在烘焙任何m、v之前,我是否必须完全计划并创建数据库方案。还是c

在扩展数据库方案时,我害怕覆盖代码。我在想这样的情况:

我有两个表“文章”和“用户”。我烘焙了mvc-s,拥有一个小而完整的网站。出于某些验证器原因(例如),我调整了用户模型/实体

现在,两周后,我想添加一个“组”表,其中一个用户可以属于多个组

通常,我可以重新制作用户的mvc文件。但那会覆盖我的整个网站

我会犯错吗?扩展表时是否必须手动修改mvc文件

扩展cakephp网站的最佳实践是什么


非常感谢。

是的,通常在烘焙MVC之前,您必须计划数据库方案

如果表中出现任何更改,则应手动执行更改,否则烘焙将覆盖您执行的所有代码


所有最好的

您可以为新表烘焙MVC,组(应该是复数),然后更新其他表中的关联(如果有)。例如,如果用户属于组,则在烘焙“组”表后,可以添加:

// in /src/Model/Table/UsersTable.php
$this->belongsTo('Groups', [
    'foreignKey' => 'group_id'
]);
当然,这假设您已将“group_id”字段添加到数据库的Users表中

如果您的表很小,并且数据模型保持相当静态,那么这是一个很好的解决方案。但是,如果您正在处理许多表,并且仍然定期对模型进行更改,那么我建议您在几次取消所有控制器更改之后,再进行更改

CakePHP3非常酷地使用了控制器模板中的元素。您可以将cakephp供应商模板复制到src目录中,然后提供其他控制器方法(如UsersController中的login()/logout())作为元素。然后对模型进行测试,并包括该模型的适当元素

通过这种方式,您可以烘焙,而不必担心丢失所有更改