Php 是否需要CodeIgniter子文件夹中的类?
我有这个结构Php 是否需要CodeIgniter子文件夹中的类?,php,codeigniter,Php,Codeigniter,我有这个结构 controllers - base.php \ subfolder - home.php 在home.php中,我想调用 require("../base.php") 但是它给了我一条错误消息,说找不到该文件。它在同一个文件夹上工作 有没有办法让它在子文件夹上工作?试试: require("/<full dir path>/base.php"); 这将告诉您使用哪条路径。请尝试: require("/<full dir path>/base.ph
controllers
- base.php
\ subfolder
- home.php
在home.php
中,我想调用
require("../base.php")
但是它给了我一条错误消息,说找不到该文件。它在同一个文件夹上工作
有没有办法让它在子文件夹上工作?试试:
require("/<full dir path>/base.php");
这将告诉您使用哪条路径。请尝试:
require("/<full dir path>/base.php");
这将告诉您要使用的路径。您可以尝试使用完整路径:
$origin = $_SERVER['DOCUMENT_ROOT'];
$home = $origin. "/controllers/home.php";
require($home);
但我明白这是一个长期的痛苦,但这是一个解决办法。我以前从未遇到过这样的问题
但也许这会有更多的帮助 您可以尝试使用完整路径:
$origin = $_SERVER['DOCUMENT_ROOT'];
$home = $origin. "/controllers/home.php";
require($home);
但我明白这是一个长期的痛苦,但这是一个解决办法。我以前从未遇到过这样的问题
但也许这会有更多的帮助 CodeIgniter从
index.php
脚本中执行,require
函数的路径基于index.php
路径解析。例如,如果您将test.php
放在CodeIgniter根文件夹中,然后从控制器调用require./test.php'
,则test.php
将毫无问题地包含在内
要回答这个问题,我们需要php magic常量\uuuu DIR\uuuu
,它总是设置为当前脚本文件夹。答案是:
require __DIR__."/../base.php";
从home.php
中调用
编辑:与平台无关的解决方案是:
require __DIR__.DIRECTORY_SEPARATOR."..".DIRECTORY_SEPARATOR."base.php";
CodeIgniter是从
index.php
脚本中执行的,require
函数的路径是基于index.php
path解析的。例如,如果您将test.php
放在CodeIgniter根文件夹中,然后从控制器调用require./test.php'
,则test.php
将毫无问题地包含在内
要回答这个问题,我们需要php magic常量\uuuu DIR\uuuu
,它总是设置为当前脚本文件夹。答案是:
require __DIR__."/../base.php";
从home.php
中调用
编辑:与平台无关的解决方案是:
require __DIR__.DIRECTORY_SEPARATOR."..".DIRECTORY_SEPARATOR."base.php";
在撰写本文时,公认的答案是正确的,因为
require
(和类似的函数)路径基于index.php的位置。然而,CodeIgniter在index.php中定义了非常有用的常量,允许您创建应用程序各个部分的路径
APPPATH
常量非常适合指向控制器/库/etc
require APPPATH . 'controllers/base.php';
更好的解决方案是以
application/core/MY_controller.php
的形式创建一个基本控制器。然后,您可以使用MY_Controller
扩展控制器,而无需任何文件 在撰写本文时,公认的答案是正确的,因为require
(和类似的函数)路径基于index.php的位置。然而,CodeIgniter在index.php中定义了非常有用的常量,允许您创建应用程序各个部分的路径
APPPATH
常量非常适合指向控制器/库/etc
require APPPATH . 'controllers/base.php';
更好的解决方案是以
application/core/MY_controller.php
的形式创建一个基本控制器。然后,您可以使用MY_Controller
扩展控制器,而无需任何文件 我在Windows上进行测试,但我将部署到Linux或Windows中的Linux服务器运行代码?我在Windows上进行测试,但我将部署到Linux或Windows中的Linux服务器运行代码?问题是,PHP中的路径总是相对于第一个文件路径,在本例中是home.PHP。因此,您必须包含dir“controllers”。取决于PHP和/或服务器的配置。@BrunoLM别忘了为您的问题选择答案;)星期五快乐!问题是PHP中的路径总是相对于第一个文件路径,在本例中是home.PHP。因此,您必须包含dir“controllers”。取决于PHP和/或服务器的配置。@BrunoLM别忘了为您的问题选择答案;)星期五快乐!