CodeIgniter从表单输入重定向

时间:2016-07-13 14:36:41

标签: php codeigniter

我从未使用过PHP框架,但我想学习如何使用它,这样我就可以更轻松地为我的公司编程,所以我选择了CodeIgniter。

我正在关注新闻部分的代码点火器教程,以便我可以了解事情是如何运作的 - 但我遇到了一些问题/问题。

现在,我在教程中指出,我有一个提交的表单并将我带到成功页面。在普通的PHP中,我只是将页面重定向到提交的新闻项的视图页面。在CodeIgniter中,我的控制器中有一个视图功能

        public function view($slug = NULL)
        {
                $data['news_item'] = $this->news_model->get_news($slug);

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

                $data['title'] = $data['news_item']['title'];

                $this->load->view('templates/header', $data);
                $this->load->view('news/view', $data);
                $this->load->view('templates/footer');
        }

我不确定如何在提交时从表单中获取slug。

这是我的创建功能(基本上是插入数据库信息并重定向到news/success的那个)

        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
            {
                $this->news_model->set_news();
                $this->load->view('news/success');
            }
        }

但我想将其重定向到视图页面。要做到这一点,我需要有我相信的slu ..所以它应该重定向到news/view/$slug - 但我不知道该怎么做。

我的set_news模型:

        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);
        }

1 个答案:

答案 0 :(得分:1)

在对问题进行更多说明后更新了答案 你应该使用类似的东西:

redirect('news/view/'.url_title($this->input->post('title'), 'dash', TRUE));