Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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-文件结构混乱-不同的控制器,还是全部在同一个控制器中?_Php_Cakephp_Cakephp 1.3 - Fatal编程技术网

CakePHP-文件结构混乱-不同的控制器,还是全部在同一个控制器中?

CakePHP-文件结构混乱-不同的控制器,还是全部在同一个控制器中?,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,为了理解我的困惑/问题,让我首先简要介绍一下我正在构建的网站:该网站有一个主页和7个分类页面,每个页面的布局相同/相似 在大多数分类主页(如“餐饮”)上,您可以进行搜索(即搜索餐厅),这将带您进入结果页面。这将具有与…相同/相似的布局。。。“影院”搜索结果页…等 所以-虽然有很多部分,但没有很多页面布局 问题:我不确定是否应该为每个控制器创建单独的控制器,并对它们使用相同的CSS?或者,如果我可以使用相同的视图文件,但根据url/action等不同地填充页面上的每个内容区域? 它们都会引用数据库

为了理解我的困惑/问题,让我首先简要介绍一下我正在构建的网站:该网站有一个主页和7个分类页面,每个页面的布局相同/相似

在大多数分类主页(如“餐饮”)上,您可以进行搜索(即搜索餐厅),这将带您进入结果页面。这将具有与…相同/相似的布局。。。“影院”搜索结果页…等

所以-虽然有很多部分,但没有很多页面布局

问题:我不确定是否应该为每个控制器创建单独的控制器,并对它们使用相同的CSS?或者,如果我可以使用相同的视图文件,但根据url/action等不同地填充页面上的每个内容区域?

它们都会引用数据库中不同的多个表-例如,餐馆会引用餐馆表、菜系表、邮政编码表等等。影院可能会参考“电影”表、邮政编码表等

但是-我也希望一些管理工具-即“餐厅/编辑”或“剧院/编辑”…等等-不是所有的网页将有该特定url的管理-即“户外”可能只是“业务/编辑”或一些通用的。。。我不知道-你可以看出我很困惑


非常感谢您的帮助。我已经阅读了很多关于使用CakePHP进行技术操作的文章,但是我找不到任何关于各种场景的通用项目结构的好资源。

您可以自己回答这个问题。假设您为每个应用程序实现了单独的控制器、模型和视图,它们有何不同?如果它们只在使用的表名和标签/字符串上不同,那么您可以只使用一个通用控制器。但是,如果它们在其他方面不同(例如,餐馆模型与电影模型具有完全不同的关系结构),则使用单独的控制器

为了防止在使用单独的控制器时控制器和视图文件之间重复过多,请尝试在公共基本控制器中推送功能(例如,AppController,或者基于您的MoviesController和RestaurantController等派生的AppController创建您自己的基本控制器)。将通用视图代码推送到元素中

关于CSS的一句话:当然你可以(也应该)重用它。它与风景几乎是分开的。只需在视图中使用合理的类名和id,CSS将易于重用


如果你仍然不确定,我会选择单独的控制器。这可能需要更多的工作,但会更干净,更容易调试。使用以上建议避免重复。

您可以自己回答。假设您为每个应用程序实现了单独的控制器、模型和视图,它们有何不同?如果它们只在使用的表名和标签/字符串上不同,那么您可以只使用一个通用控制器。但是,如果它们在其他方面不同(例如,餐馆模型与电影模型具有完全不同的关系结构),则使用单独的控制器

为了防止在使用单独的控制器时控制器和视图文件之间重复过多,请尝试在公共基本控制器中推送功能(例如,AppController,或者基于您的MoviesController和RestaurantController等派生的AppController创建您自己的基本控制器)。将通用视图代码推送到元素中

关于CSS的一句话:当然你可以(也应该)重用它。它与风景几乎是分开的。只需在视图中使用合理的类名和id,CSS将易于重用


如果你仍然不确定,我会选择单独的控制器。这可能需要更多的工作,但会更干净,更容易调试。使用上述建议避免重复。

-p>将布局中所有站点共享的元素分组(即站点css、站点公共js库) -为您的每个类别(页面)(即餐饮页面、剧院页面、餐厅页面)创建一个视图,并将页面内容(即剧院js、剧院包含)放在那里 -从理论上讲,每个vew都应该有一个控制器和模型,所以必须将它们分开

无论如何,像“餐厅/编辑”或“剧院/编辑”这样的url实际上意味着模型“餐厅”,操作“编辑”在您的控制器文件中


我建议你阅读cakephp网站上的内容,你应该回答你所有的困惑

-将在布局中的所有站点之间共享的元素分组(即站点css、站点公共js库) -为您的每个类别(页面)(即餐饮页面、剧院页面、餐厅页面)创建一个视图,并将页面内容(即剧院js、剧院包含)放在那里 -从理论上讲,每个vew都应该有一个控制器和模型,所以必须将它们分开

无论如何,像“餐厅/编辑”或“剧院/编辑”这样的url实际上意味着模型“餐厅”,操作“编辑”在您的控制器文件中


我建议你阅读cakephp网站上的文章,你应该回答你所有的困惑

肯定只有一个类别控制器。如果每个类别的观点都非常不同,你可以简单地使用不同的观点。这与其他答案不同。你能解释一下吗?对不起,我误解了。我以为你打算为类似的类别设置单独的控制器。下面给出的答案是正确的,将它们分组并重构。您可能想
烘焙
您的代码,然后从那里获取代码,这样您就不会有太多的基础工作要布局。酷-感谢您的澄清:)肯定只有一个类别控制器。如果每个类别的观点都非常不同,你可以简单地使用不同的观点。这与其他答案不同。你能解释一下吗?对不起,我误解了。我以为你打算为类似的类别设置单独的控制器。下面给出的答案是正确的,将它们分组并重构。您可能希望
烘焙
您的代码,然后从那里获取代码,这样您就没有了