【发布时间】:2025-12-21 11:25:12
【问题描述】:
我有这个模型函数:
public function set_news()
{
$this->load->helper('url');
$slug = url_title($this->input->post('title'), 'dash', TRUE);
$data = array(
'title' => $this->input->post('title'),
'slug' => $slug,
'text' => $this->input->post('text')
);
return $this->db->insert('news', $data);
}
如您所见,其中有一个名为$slug 的变量。
我调用这个函数的方式是通过一个控制器:
public function create()
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Create a news item';
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'Text', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/create');
$this->load->view('templates/footer');
}
else
{
$var = $this->news_model->set_news();
$this->load->view('news/SLUG/');
}
}
现在,我想弄清楚如何做是使用控制器中的 $slug 变量来加载刚刚发布的文章的 view - 但我不知道如何在数据提交到数据库后访问该变量。
【问题讨论】:
-
试试
return $slug。然后$this->load->view($slug); -
如果我返回 slug 那么数据不会发布到数据库 - 因为现在返回触发将数据放入数据库。
-
为什么不在 Controller 中再次调用 url_title() 呢?
-
$this->db->insert()其中insert是在您的模型上执行的函数,您只是返回它的响应。 -
$this->db->insert()返回 TRUE 或 FALSE,当从 Controller 调用set_news()时,您不会检查。所以从模型中返回 Slug 也可以使用。
标签: php codeigniter