在我的头发被撕掉后,我发布了这个,朗姆酒用尽了,并尝试了我在谷歌上找到的一切。我一直在使用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
控制器
任何导致解决方案的帮助都会很棒。我是在时间紧迫的情况下付出代价来获得一些帮助。提前谢谢。
答案 0 :(得分:1)
不,你不能在控制器和库中使用相同的名称。请选择其他名称。例如,控制器名称的Mypages。 改变你的路线
$route['(:any)'] = 'mypages/display_page';
然后打电话给你的控制器。
答案 1 :(得分:-1)
我认为图书馆uri没有任何问题,因为正如codeigniter官方网站所说:This class is initialized automatically by the system so there is no need to do it manually.
我不了解lib页面,但是如何使用
$this->load->view(<file-html>);
如果你想在变量中传递数据,你可以像这样添加变量
$this->load->view(<file-html>, $data);
希望这个帮助,干杯