2013-02-08 45 views
0

我有一个麻烦提出这个概念。我的应用程序存储在http://localhost(杜),我有一个管理面板,可以通过访问http://localhost/admin访问。我有管理面板菜单,其中一个菜单是管理页面,访问http://localhost/admin/manage_pages。 “管理页面”页面会显示来自数据库的结果,其中包含标题,说明和ID。现在,我的问题是,如果我想编辑可以说第三行的标题,我该怎么做?它会是http://localhost/admin/manage_pages/3?但是,对于那种情况下,我将不得不在控制器中创建一个功能?我很困惑。CodeIgniter管理数据库记录

+2

有几种方法去这个问题,但我认为,如果你学习CodeIgniter的路由,会更有意义。从根本上说,你的控制器是admin,函数是manage_pages,以及可以使用URI类获得的url中的任何其他数据(如3)。所以不,你不需要每个页面的新功能。 – Jerry 2013-02-08 19:10:44

+0

这是有道理的,因为可以检索/发送/检索manage_pages后的任何内容,并将其与行的id值进行比较。感谢提示! – Grigor 2013-02-08 19:13:29

+0

如果您有任何编辑按钮,您也可以采取其他方式。当你点击编辑按钮时调用一个javascript函数。在该函数中,从颜色框中加载一个colorbox只需编写一个简单的控制器函数。在那里传递id并使用该id从数据库中检索有关该页面的详细信息,并在可编辑文本框的colorbox中显示它。在用户使用ID再次提交时,在数据库中编辑完成更新后即为一次。 – 2013-02-08 19:53:19

回答

1

如果您喜欢URI格式化的方式:localhost/admin/manage_pages/3,那么缺少的东西就是接受控制器函数的变量。在这种情况下,我更喜欢设置一个默认值,如果没有传递,并且使用if语句,您将有一个方法来加载指定页面,或者在没有任何内容传递时加载所有页面。

控制器管理:

public function manage_pages($page_id='') 
{ 
    if ($page_id == '') 
    { LOAD ALL RESULTS } 
    else 
    { LOAD 1 RESULT } 
}