codeigniter - 每个URL都需要一个Controller吗?

时间:2017-02-16 17:30:12

标签: codeigniter model-view-controller controller codeigniter-3

我在Codeigniter 3上有一个工作项目。现在我必须构建一个FAQ页面,我有这个疑问:我是否需要每个URL都有一个Controller?

它是,FAQ页面是一个静态页面,但CodeIgniter通常将URL路由到控制器,如域/控制器/方法。但是构建一个Controller来加载View似乎是一种浪费。

1 个答案:

答案 0 :(得分:1)

不,这不是为每个页面制作控制器的正确方法。只需通过从数据库中获取数据来创建一个显示页面的功能。

  1. 首先在数据库中创建一个名为pages的表,然后为不同的页面保存page_content,page_name,永久链接。

  2. 现在假设您的默认控制器是home,在其中使用名称页面创建一个函数,如下所示。

            function pages( $permalink )
            {
                // get page data based on page_name passed in URL
                $this->db->where( array( 'permalink' => $permalink ) );
                $data['page'] = $this->db->get( 'pages' )->result();
    
                // load view and pass page object to view
                $this->load->view( 'view_file', $data );
            }
    
  3. 现在,相同的功能将根据URL中传递的固定链接显示不同的页面内容。

  4. 例如,如果网址为www.example.com/index.php/home/pages/faq,则会显示常见问题解答页面的内容。