ошибка маршрутизации codeigniter - PullRequest
0 голосов
/ 28 августа 2011

http://mysite/products/create

Not Found

The requested URL /products/create was not found on this server.
Apache/2.2.16 (Debian) Server at site5.example.com Port 80

rout.php =>

$route['default_controller'] = 'products';
$route['404_override'] = '';

модель =>

<?php
class Products_model extends CI_Model {

    function __construct()
    {
        $this->load->database();

    }

    function get_products($slug = FALSE)
    {
        if ($slug === FALSE)
        {
            $query = $this->db->get('products');
            return $query->result_array();

        }

        $query = $this->db->get_where('products', array('slug' => $slug));
        return $query->row_array();
    }

    function set_products()
    {
        $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('products', $data);

    }

}

контроллер =>

<?php
class Products extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->model('products_model');

    }

    function index()
    {
        $data['products'] = $this->products_model->get_products();
        $data['title'] = 'Products archive';
        $this->load->view('products/index', $data);
    }

    function view($slug)
    {
        $data['products'] = $this->news_model->get_news($slug);
    }

    function create()
    {
        $this->load->helper('form');
        $this->load->library('form_validation');

        $data['title'] = 'Create a products 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('products/create');
            //$this->load->view('templates/footer');

        }
        else
        {
            $this->news_model->set_news();
            $this->load->view('products/success');
        }   
    }

}
?>

view =>

<h2>Create a news item</h2>

<?php echo validation_errors(); ?>

<?php echo form_open('products/create') ?>

    <label for="title">Title</label> 
    <input type="input" name="title" /><br />

    <label for="text">Text</label>
    <textarea name="text"></textarea><br />

    <input type="submit" name="submit" value="Create news item" /> 

</form>

Почему я получил эту ошибку?Где ошибка?

1 Ответ

1 голос
/ 29 августа 2011

Не так:

$route['default_controller'] = 'products/index';
$route['products/create'] = 'products/create';
$route['404_override'] = '';

Сделайте так:

$route['default_controller'] = 'products';
$route['404_override'] = '';

Не указывайте метод, потому что CI будет искать «индексный» контроллер в папке application / productsкоторый не существует.Если вы указываете путь в маршруте, чем он ищет путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...