我用控制器创建了我的网站,例如about,products等...这给了我example.com/about/等..
如何创建具有相同控制器名称的管理员部分,例如example.com/admin/about或example.com/admin/products?
如何整理控制器?
答案 0 :(得分:5)
另外两个选项可以补充 WebweaverD 回答。
设置后,第二个选项非常容易管理。有变化,但我发现下面的结构是最方便的。
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_once('../../../../config/database.php');
添加到config/database.php
1}}
index.php 文件有两个重要变量$system_path
和$application_folder
,将其更改为
$system_path = '../../../system/codeigniter';
$application_folder = '../app';
constants.php 文件可以有一些常量,例如来自ENVIRONMENT
文件的index.php
常量和其他一些常量。只需require_once()
来自index.php
个文件。
虽然有利有弊。
<强>赞成强>
对于那些在localhost上开发并通过FTP或其他系统部署到服务器的人,只需上传一个文件夹 - apps
并覆盖目标文件夹,无需担心覆盖database.php
设置(I我相信你们中的大多数人都与当地人不同。
添加一个应用程序很简单 - 只需复制一个现有应用程序。您可以根据需要添加任意数量的应用程序 - api,ajax,用户机柜等。
<强> CONS 强>
如果您的域名为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 /
答案 1 :(得分:4)
你有几个选择:
1)创建子文件夹 - 将它们放在controllers目录下的一个名为admin的文件夹中(在application / contollers / admin / products.php中)
这里警告的一句话就是你只能去一个文件夹或者codeigniter会感到沮丧。此外,它将首先使用第一级控制器/方法,因此请注意命名冲突 - 例如,如果您有一个带有产品方法的管理控制器,那么在查看产品控制器的管理目录之前将调用它。 (当访问example.com/admin/products时)
2)使用路由文件 - 如果它只是您担心的网址,您可以随意调用控制器,并使用application / config / routes将这些路径重定向到您想要的控制器如下:
控制器名称:admin_products.php
路线档案:
$route['admin/products'] = "admin_products";
3)使用全部主控制器 - 最终选项是拥有一个管理控制器并在其中使用命名方法,例如,您有admin.php控制器,其中包含产品方法这将由admin / products uri调用(虽然在大型应用程序/站点中可能会变得混乱 - 不推荐)
希望我已经为您解释了这个,如果您需要任何澄清,请询问,我会尽力详细说明。