【发布时间】:2017-11-30 15:50:24
【问题描述】:
在我的头发被扯掉、朗姆酒用完并尝试了我在谷歌上能找到的一切之后,我发布了这篇文章。我一直在使用使用模板的 codeigniter 开发一个站点。我首先构建了后端,并且一切都在那里正常工作。所以现在我已经开始让前端工作了,这就是我遇到的问题。
我创建了一个名为pages.php 的控制器,它将解析当前页面的uri 字符串,使用我的库从数据库中获取页面数据,然后显示它。我的页面都是通过后端的编辑器创建并存储在数据库中的。
这是页面控制器
class Pages extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library("pages");
}
public function display_page()
{
$page_slug = $this->uri->segment(1);
$data["joes"] = "Here's joes first variable";
$this->pages->get_page($page_slug);
}
}
这是当我像这样demo.mydomain.com/joes-test点击我的网址时收到的错误消息
这是我的路线设置方式。 $route['(:any)'] = 'pages/display_page';
我的Pages.php 库在后端运行完美,但它是一个大文件。我只在下面发布了 get_page 函数。如果您需要查看所有内容,请告诉我。但我不认为这个问题与图书馆本身有任何关系。
public function get_page($slug){
$objPages = new pages();
$objPages->get_object('slug="'.$slug.'"');
return $objPages;
}
[编辑] 如果我将以下内容放在我的主页控制器中,它就可以工作。但是调用函数需要在库中。
$this->load->library('pages');
$the_page = $this->pages->get_page("joes-test");
我想打电话给$this->get_object("joes-test"),但这不起作用。 get_object() 是库中的继承函数。
现在很奇怪。如果我在pages 控制器中执行完全相同的操作,我上面的代码将不起作用
任何导致解决方案的帮助都会很棒。我时间紧迫,需要付费才能获得一些帮助。提前致谢。
【问题讨论】:
-
pages库类是否包含构造函数? -
我想知道这是否可以成为 CI 著名的大写挑剔的一个例子。尝试重命名您的 pages.php 库 Pages.php。
-
@Utkanos 如果他正在运行 CI 3,那么类名必须以大写字符开头,因为他说它在其他地方工作,我想他可能会覆盖他库中的调用构造函数跨度>
-
我指的是库文件名,而不是类名。
-
是的,页面确实包含一个构造函数和其中的
parent::__construct()。库文件称为Pages.php,里面的类也称为Pages
标签: php codeigniter