我是Drupal开发人员,也是代码点火器或任何此类php框架的新手。
现在我必须修改在codeigniter上完成的现有应用程序,结构必须如下:
在它只有一个网址 example.com/motors 之前,我想创建更多网址,如上所述。
在application \ views \ content文件夹中,我有以下结构:
应用\视图\内容\ motors.php
application \ views \ content \ motors
应用\视图\内容\马达\汽车换sale.php
在application \ controller文件夹中,我有以下结构:
应用\控制器\ motors.php
应用\控制器\电机\ motors.php
应用\控制器\马达\汽车换sale.php
我想获取url example.com/motors&来自文件的example.com/motors/car-for-sale位于motors文件夹中。如何在打开 example.com/motors 时设置要加载的默认文件?
答案 0 :(得分:0)
您不能拥有与同一级别的控制器类名称匹配的(控制器)目录。也就是说,由于您有 controllers / motors.php ,因此永远不会到达 controllers / motors / * 下的文件。
相反(这是第二个问题的答案),您应该设置 default_controller 名称并将controllers/motors.php
重命名为controllers/motors/<default_controller>.php
。
请注意, default_controller 设置指向控制器名称(不是文件位置),并应用于所有目录。也就是说,如果将其设置为“默认”,则在打开http://domain.tld/
和 controllers / motors / Default.php controllers / Default.php 如果您打开http://domain.tld/motors/
,将会使用>。
此外,您的控制器名称必须以大写字母开头,因此 default.php 将不正确,而应该是 Default.php 。这可能在Windows上适用于您(因为它不区分大小写的文件系统),但只要您将站点上传到Linux(或其他基于UNIX的)主机,任何文件名都不具备的类以大写字母开头不起作用。
答案 1 :(得分:0)
看起来您正在尝试使用与其设计完全不同的范例构建CodeIgniter站点。
您可以使用routes.php
application/config
文件设置您所使用的结构
在那里,您可以设置路线以转到所需的任何位置,所以对您而言:
$routes['motors/cars-for-sale'] => 'motors/cars_for_sale';
$routes['motors/cars-for-rent'] => 'motors/cars_for_rent';
然后在application/controller
中你有一个Motors.php
文件,它开始于:
class Motors extends CI_Controller{
并且还具有cars_for_sale
和cars_for_rent
路由中的映射将此设置为链接在一起。
为了获得您想要的任何给定路线的视图,在控制器功能中,您将拥有:
$this->load->view('path/to/view/file', $array_of_data); // view path does not need the .php extension
我建议您查看文档中的CodeIgniter tutorial,或者甚至可以查看其中的{{3}}