我是一个Drupal,对代码点火器或任何类似的php框架都是新手。
现在,我必须修改一个在代码点火器上完成的现有应用程序,其结构必须如下:
在此之前,它只有一个urlexample.com/motors,我想创建更多的url,如上所述。
在应用程序\视图\content文件夹中,我有以下结构:
application\views\content\motors.php
application\views\content\motors
application\views\content\motors\car-for-sale.php
在应用程序\控制器文件夹中,我有以下结构:
application\controller\motors.php
application\controller\motors\motors.php
application\controller\motors\car-for-sale.php
我想从驻留在电动机中的文件中获取urlexample.com/ motors & example.com/motors /car-待售文件,在打开example.com/motors时如何设置默认文件来加载?
发布于 2016-03-07 09:20:15
您不能拥有一个(控制器)目录,该目录与同一级别的控制器类的名称匹配。也就是说,由于您有一个控制器/Motors.php,因此将永远无法到达控制器/motors/*下的文件。
相反(这是第二个问题的答案),您应该设置default_controller名称并将controllers/motors.php重命名为controllers/motors/<default_controller>.php。
注意,default_controller设置指向控制器名称(而不是文件位置),并应用于所有目录。也就是说,如果将其设置为“Default.php”,那么在打开http://domain.tld/时将使用controllers/Default.php,如果打开http://domain.tld/motors/,将使用controllers/motors/Default.php。
另外,您的控制器名称必须以大写字母开头,因此default.php将是不正确的,而应该是Default.php。这在Windows上可能适用(因为它的大小写不敏感),但一旦您将站点上传到Linux (或其他基于UNIX的)主机,任何不以大写字母开头的文件名类都无法工作。
发布于 2016-03-07 09:24:45
看起来,您正在尝试构建一个与其设计完全不同的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教程的后续
https://stackoverflow.com/questions/35839823
复制相似问题