gpt4 book ai didi

php - codeigniter 中的动态页面控件

转载 作者:可可西里 更新时间:2023-10-31 23:33:17 24 4
gpt4 key购买 nike

在我的 CI 项目中,我想使用一个完整的动态页面控件。所以,我有两个 Controller 方法,用于加载 php 文件。模型控件的查询基于 url 段。除了 index.php 文件外,所有页面输出都根据 url 和数据库结果在 views php 文件中自动生成。

这是正确的方法吗?

Controller

public function index()
{
$data['title'] = "Index";
$data['nav'] = $this->content_model->get_index_nav(); //TODO

$this->load->view('templates/header', $data);
$this->load->view('templates/nav', $data);
$this->load->view('templates/nav_pict', $data);
$this->load->view('pages/aktualis', $data);
$this->load->view('templates/footer', $data);
}
public function view($page)
{
$page = 'content';

$this->load->helper('text');
$this->load->helper('url');

$page = lcfirst(convert_accented_characters(urldecode($page)));

if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
show_404();
}

$data['title'] = ucfirst($page); // Capitalize the first letter
$data['nav'] = $this->content_model->get_nav();
$data['content'] = $this->content_model->get_content();

if(empty($data['content']))
{
show_404();
}

$this->load->view('templates/header', $data);
$this->load->view('templates/nav', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}

模型(每个菜单在数据库中都有一个内容。创建新子菜单时必须添加内容)

public function get_content()
{
$this->db->select('content.*, mainmenu.label');
$this->db->from('content');
$this->db->join('mainmenu', 'mainmenu.id = content.katId', 'left');
$this->db->where('mainmenu.label', mysql_escape_string(urldecode(end($this->uri->segments))));

$query = $this->db->get();

return $query->result_array();

}

路由

$route['404_override'] = '';
$route['/:any/(:any)'] = 'pages/view/$1';
$route['(:any)'] = 'pages/view/$1';
$route['Index'] = 'pages/index';
$route['default_controller'] = 'pages/index';

最佳答案

您可以很好地使用 CodeIgniter,不需要进行任何结构修改。

关于php - codeigniter 中的动态页面控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com