【发布时间】:2018-03-14 09:41:17
【问题描述】:
我正在这个系统中开发 CodeIgniter 应用程序,我可以选择从管理面板创建动态页面 title 和 content 都存储在数据库中。但是我想在 page 发布后像 WordPress 一样在 CodeIgniter 中自动生成 permalink URL?
举例
the page title name test
the function should be created
http://localhost/codeigniter/test after form data stored in the database
页面控制器
class Pages extends CIF_Controller {
public $layout = 'full';
public $module = 'pages';
public $model = 'Pages_model';
public function __construct() {
parent::__construct();
$this->load->model($this->model);
$this->_primary_key = $this->{$this->model}->_primary_keys[0];
$this->permission();
}
public function index() {
$this->{$this->model}->custom_select = 'pages.*, menu.title as menu';
$this->{$this->model}->joins = array(
'menu' => array('menu.menu_id = pages.menu_id', 'inner')
);
$data['items'] = $this->{$this->model}->get();
$this->load->view($this->module . '/index', $data);
}
public function manage($id = FALSE) {
$data = array();
$this->{$this->model}->custom_select = 'pages.*, menu.title as menu';
$this->{$this->model}->joins = array(
'menu' => array('menu.menu_id = pages.menu_id', 'inner')
);
if ($id) {
$this->{$this->model}->{$this->_primary_key} = $id;
$data['item'] = $this->{$this->model}->get();
if (!$data['item'])
show_404();
} else {
$data['item'] = new Std();
}
$this->load->library("form_validation");
$this->form_validation->set_rules('title', 'title', 'trim|required');
$this->form_validation->set_rules('menu_id', 'select menu', 'trim|required');
$this->form_validation->set_rules('content', 'content', 'trim|required');
$this->form_validation->set_rules('link', 'link', 'trim|required');
if ($this->form_validation->run() == FALSE)
$this->load->view($this->module . '/manage', $data);
else {
$this->{$this->model}->title = $this->input->post('title');
$this->{$this->model}->menu_id = $this->input->post('menu_id');
$this->{$this->model}->content = $this->input->post('content');
$this->{$this->model}->menulink = $this->input->post('link');
$this->{$this->model}->save();
redirect('admin/' . $this->module);
}
}
public function delete($id = false) {
if (!$id)
show_404();
$this->{$this->model}->{$this->_primary_key} = $id;
$data['item'] = $this->{$this->model}->get();
if (!$data['item'])
show_404();
$this->{$this->model}->delete();
redirect('admin/' . $this->module);
}
}
【问题讨论】:
-
我的回答对你有帮助吗?
标签: php wordpress codeigniter url permalinks