Php codeigniter管理面板自动页面创建
如果我动态创建菜单,我想创建一个自动创建函数的控制器文件,还想创建连接到此主控制器的视图页。。怎么做 当前代码:Php codeigniter管理面板自动页面创建,php,codeigniter,Php,Codeigniter,如果我动态创建菜单,我想创建一个自动创建函数的控制器文件,还想创建连接到此主控制器的视图页。。怎么做 当前代码: public function our_history() { $data['category']= $this->menu_model->getCategory('$lang'); $data['subcategory']= $this->menu_model->getSubCategory('$la
public function our_history()
{
$data['category']= $this->menu_model->getCategory('$lang');
$data['subcategory']= $this->menu_model->getSubCategory('$lang');
$this->load->view('vwMain',$data);//Left Menu }
}
假设您的URL是
www.example.com/controllername/methodname/menutitle1
或
www.example.com/controllername/methodname/menutitle2
这就是你处理这些页面的方式
public function method()
{
$menutitle = $this->uri->segment(3);
$query = $this->db->get_where('TableName',array('Menutitle'=>$menutitle))
$data['content'] = $query->row()->page_content;
$this->load->view('common_page',$data);
}
遵循以下步骤,希望有意义。 --行政科-- /*php——控制器从这里开始*/
class Content extends VCI_Controller {
# Class constructor
function __construct()
{
parent::__construct();
$this->load->model('content_model');
}
/*
Add page logic
*/
function edit_page($id = null)
{
$this->_vci_layout('your_layoutname');
$this->load->library('form_validation');
$view_data = array();
//Set the view caption
$view_data['caption'] = "Edit Content";
//Set the validation rules for server side validation
// rule name editcontent should be defined
if($this->form_validation->run('editcontent')) {
//Everything is ok lets update the page data
if($this->content_model->update(trim($id))) {
$this->session->set_flashdata('success', "<li>Page has been edited successfully.</li>");
$this->output->set_header('location:' . base_url() . 'content/manage_content');
} else {
$this->session->set_flashdata('error', "<li>Unknown Error: Unable to edit page.</li>");
$this->output->set_header('location:' . base_url() . 'content/manage_content');
}
} else {
$page = $this->content_model->get_content_page(trim($id));
$view_data["id"] = $page->id;
$view_data["page_title"] = $page->page_title;
$view_data["page_menu_slug"] = $page->page_menu_slug;
$view_data["page_name"] = $page->page_name;
$view_data["page_content"] = $page->page_content;
$view_data["status"] = $page->status;
$this->_vci_view('content_editpage', $view_data);
}
}
/*
Edit page logic
*/
function add_page()
{
$this->_vci_layout('your_layoutname');
$this->load->library('form_validation');
$view_data = array();
$view_data['caption'] = "Edit Content";
if($this->form_validation->run('editcontent')) {
// after passing validation rule data to be saved
// editcontent rule must be defined in formvalidations file
//Everything is ok lets update the page data
if($this->content_model->add()) {
$this->session->set_flashdata('success', "<li>Page has been edited successfully.</li>");
$this->output->set_header('location:' . base_url() . 'content/manage_content');
} else {
$this->session->set_flashdata('error', "<li>Unknown Error: Unable to edit page.</li>");
$this->output->set_header('location:' . base_url() . 'content/manage_content');
}
} else {
$page = $this->content_model->get_content_page(trim($id));
$view_data["id"] = $page->id;
$view_data["page_title"] = $page->page_title;
$view_data["page_menu_slug"] = $page->page_menu_slug;
$view_data["page_name"] = $page->page_name;
$view_data["page_content"] = $page->page_content;
$view_data["status"] = $page->status;
$this->_vci_view('content_editpage', $view_data);
}
}
}
/*
内容_模型到此结束#管理部分更改到此结束
*/
--将视图文件也添加到管理部分content_editpage.php
现在转到前面部分的routes.php文件--
最后添加到下面的行--
这将适用于所有URL,如--http://yourdomainname/your_slug_name
//在首页page.php中再次创建一个控制器--
请用代码回复您到目前为止尝试了什么?无法理解…:-(就像我有controller main.php,函数类似于我们的公共函数历史(){$data['category']=$this->menu\u model->getCategory('$lang');$data['subcategory']=$this->menu model->getSubCategory('$lang'));$this->load->view('vwMain',$data);//左菜单}现在我希望函数名必须来自或从数据库获取..假设menu是一个表名,menutitle是一个feild名称,那么我想获取menutitles作为函数名来代替我们的_历史…可能吗?所以基本上您需要创建静态页面,管理员可以在其中为不同的u创建或管理静态页面rl和它们都有相同的布局,而不是为每个page@SrrijitaDasgupta:若真的有帮助的话,你们可以接受答案。@SrrijitaDasgupta-点击答案下方的右符号接受。@SrrijitaDasgupta你们还需要文件吗?或者问题已经解决,基本上那个文件就是你们的html文件,你们可以显示你们的数据在page.php文件中
class Content_model extends CI_Model {
// update logic goes here
function update($id = null) {
if(is_null($id)) {
return false;
}
$data = array(
'page_title' => htmlspecialchars($this->input->post('page_title',true)),
'page_name' => htmlspecialchars($this->input->post('page_name',true)),
'page_content' => $this->input->post('page_content',true),
'page_menu_slug' => htmlspecialchars($this->input->post('page_menu_slug',true)),
'status' => htmlspecialchars($this->input->post('status',true))
);
$this->db->where('id', $id);
$this->db->update('content', $data);
return true;
}
// Add logic goes here
function add() {
$data = array(
'page_title' => htmlspecialchars($this->input->post('page_title',true)),
'page_name' => htmlspecialchars($this->input->post('page_name',true)),
'page_content' => $this->input->post('page_content',true),
'page_menu_slug' => htmlspecialchars($this->input->post('page_menu_slug',true)),
'status' => htmlspecialchars($this->input->post('status',true))
);
$this->db->where('id', $id);
$this->db->insert('content', $data);
return true ;
}
$route['(:any)'] = 'page/view_usingslug/$1';
class page extends VCI_Controller {
function __construct()
{
parent::__construct();
}
function view_usingslug($slug='')
{
// retrieve the data by slug from content table using any model class and assign result to $view_dat
$this->_vci_view('page',$view_data);
//page.php will be your view file
}
}