【问题标题】:codeigniter check if uri segment exist in databasecodeigniter 检查 uri 段是否存在于数据库中
【发布时间】:2012-06-08 19:08:48
【问题描述】:

我正在尝试创建动态页面而不创建新文件并从数据库中获取数据...

所以我的桌子会是这样的:

Pages
------
id | page_name | text
1  | about     | about page goes here
2  | contact   | contact page goes here

现在我的问题是如何让$this->uri->segement(1) 自动检查给定的页面名称是否存在于数据库中?

我必须创建一个新的控制器来处理所有这些吗?

【问题讨论】:

标签: database codeigniter controller uri segment


【解决方案1】:

如果您要检查多个页面,我建议您使用 Pages 控制器来管理这些页面。像这样的

class Pages extends CI_Controller {
    public function view($page_name)
    {
        $this->load->Pages_model();

        if($this->Pages_model->does_exist($page_name))
        {
            // Does exist. Do things.
        } else
        {
            show_404();
        }
    }
}

在您的routes.php 中,您将aboutcontact 页面(以及您可能拥有的任何其他页面)路由到页面控制器。

$route['about'] = "pages/view/about";
$route['contact'] = "pages/view/contact";

您的Pages_model 需要一个简单的函数来检查页面名称是否存在于数据库中。

function does_exist($page_name) {

    $this->db->where('name', $page_name); // assuming you have a table with a `name` field
    $query = $this->db->get('pages'); // select from the `pages` table
    return $query->num_rows() > 0; // returns bool

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2019-08-16
    • 2019-03-28
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 2015-02-22
    相关资源
    最近更新 更多