在Code Igniter 2.0中创建管理部分控制器和视图

Ada*_*dam 3 codeigniter codeigniter-2

我用控制器创建了我的网站,例如about,products等...这给了我example.com/about/等.

如何创建具有相同控制器名称的管理部分,例如example.com/admin/about或example.com/admin/products?

如何组织我的控制器?

Ser*_*sky 5

2个补充WebweaverD答案的选项.

  1. 使用模块化分离
  2. 创建第二个应用程序文件夹和索引文件,它将负责管理员,将它们连接到同一个系统文件夹.

设置后,第二个选项非常容易管理.有变化,但我发现下面的结构是最方便的.

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
Run Code Online (Sandbox Code Playgroud)

database.php中文件包含CodeIgniter的代码config/database.php和共享您的项目中的所有应用程序-只要删除所有代码,并添加require_once('../../../../config/database.php');config/database.php

index.php的公共文件夹中的文件有两个重要的变量$system_path$application_folder,将其更改为

$system_path = '../../../system/codeigniter';
$application_folder = '../app';
Run Code Online (Sandbox Code Playgroud)

constants.php文件可以有一些常量,如文件中的ENVIRONMENT常量index.php和其他一些常量.只是require_once()来自index.php文件.

虽然有利有弊.

PROS

对于那些在localhost上开发并通过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 /