在CodeIgniter 2.0中创建管理部分控制器和视图
我已经创建了我的网站与控制器,如约,产品等。。。这给了我example.com/about/等 如何创建具有相同控制器名称的管理部分,如example.com/admin/about或example.com/admin/products在CodeIgniter 2.0中创建管理部分控制器和视图,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,我已经创建了我的网站与控制器,如约,产品等。。。这给了我example.com/about/等 如何创建具有相同控制器名称的管理部分,如example.com/admin/about或example.com/admin/products 如何组织我的控制器?这里有几个选项: 1) 创建子文件夹-将它们放在controllers目录下名为admin的文件夹中(在application/contollers/admin/products.php中) 这里有一个警告,您只能进入一个文件夹,否则code
如何组织我的控制器?这里有几个选项: 1) 创建子文件夹-将它们放在controllers目录下名为admin的文件夹中(在application/contollers/admin/products.php中) 这里有一个警告,您只能进入一个文件夹,否则codeigniter会感到不安。此外,它将首先使用第一级控制器/方法,因此要小心命名冲突-例如,如果您有一个包含products方法的admin控制器,那么在它在admin目录中查找products控制器之前,它将被调用。(访问example.com/admin/products时) 2) 使用路由文件-如果只是您担心的URL,您可以随意调用控制器,并使用应用程序/config/ROUTES将这些路径重定向到您想要的控制器,如下所示: 控制器名称:admin_products.php 路由文件:
$route['admin/products'] = "admin_products";
3) 对所有人使用主控制器-最后一个选项是使用一个管理控制器,并在其中使用命名方法,因此,例如,您有一个admin.php控制器,其中包含一个products方法,然后由admin/products uri调用(在大型应用程序/站点中,这可能会变得很混乱-不推荐)
希望我已经为您解释了这一点,如果您需要任何澄清,请询问,我将尝试详细说明。2更多选项来恭维webweaver回答
mykewlwebsite.com
apps/
frontend/
app/ frontend codeigniter application folder
public/
index.php
assets/ frontend js, css, images
backend
app/ backend codeigniter application folder
public/
index.php
assets/ backend js, css, images
config/
database.php
constants.php
system/ codeigniter system folder
database.php文件包含CodeIgniter的config/database.php
中的代码,并为项目的所有应用程序共享-只需删除所有代码并将require_添加一次('../../../../../config/database.php');
到config/database.php
index.php公用文件夹中的文件有两个重要变量$system\u path
和$application\u folder
,请将它们更改为
$system_path = '../../../system/codeigniter';
$application_folder = '../app';
constants.php文件可以包含一些常量,如index.php
文件中的环境
常量和其他一些常量。只需require_once()
就可以从index.php
文件中获取它
虽然有正反两面
专业人士
对于那些在本地主机上开发并通过FTP或其他系统部署到服务器的用户,只需上传一个文件夹-apps
,然后覆盖目标文件夹,而不用担心覆盖database.php
设置(我相信大多数用户的设置与本地设置不同)
再添加一个应用程序很简单——只需复制现有应用程序中的一个即可。您可以添加任意数量的应用程序—api、ajax、用户文件柜等
缺点
如果您拥有一个名为mykewlwebsite.com
的域,并且能够向其中添加子域,则可以使用此结构,因此您只需为每个子域配置主文件夹:
mykewlwebsite.com:path/to/mykewlwebsite.com/apps/frontend/public/
admin.mykewlwebsite.com:path/to/mykewlwebsite.com/apps/backend/public/
api.mykewlwebsite.com:path/to/mykewlwebsite.com/apps/api/public/模块化分离在我身上是一个新概念,因此我无法对此发表评论,但建议2对于大型应用程序来说是一个非常好的方法(我应该想到的)-它将使管理端完全分离,您可以让所有危险的数据库查询远离用户(至少在任何方法中,您都应该使用单独的模型)。是的,我自己总是使用第二个模型,如果需要在两个应用程序之间共享某些模型,您可以通过两种方式来实现-
require\u once()
和第三方软件包
所以只需添加另一个名为Application_2的文件夹?是否有关于如何执行此操作的指南?无需指南。我将立即更新我的答案,以获得有关如何执行此操作的更多信息原来我的答案实际上是一个指南:)