2015-08-07 2 views
0

Если я открываю файл ~/index.php/crud /, отправьте форму, он отобразит этот URL: ~/index.php/index.php/crud/create. Вы можете увидеть это из источника страницы. Я удивляюсь, почему есть два index.php?Форма представления - CodeIgniter

class Crud extends CI_Controller 
{ 
function index() 
{ 
     $this->load->view('crud'); 
} 

function create() 
{ 
    $data = array(
     'sku' => $this->input->post('sku'), 
     'name' => $this->input->post('name'), 
     'price' => $this->input->post('price') 
     ); 

     $this->load->model('crud_model'); 
     $this->crud_model->create($data); 
     $this->index(); 
} 
} 

class Crud_model extends CI_Model 
{ 
function create($data) 
{ 
    $this->db->insert('products', $data); 
    return; 
} 
} 

<!DOCTYPE html> 
<html> 
<head> 
<title>CRUD</title> 
</head> 
<body> 
<h1>Create</h1> 
<div> 
    <?php echo form_open('crud/create'); ?> 
     <label for="sku">SKU</label> 
     <input type="text" name="sku" id="sku"><br> 
     <label for="name">Name</label> 
     <input type="text" name="name" id="name"><br> 
     <label for="price">Price</label> 
     <input type="text" name="price" id="price"><br> 
     <input type="submit" name="submit" value="Go"> 
    <?php echo form_close(); ?> 
</div> 
</body> 
</html> 

Если я открыть ~/index.php/CRUD /, отправить форму, он показывает этот адрес: ~/index.php/index.php/отбросы/создать. Вы можете увидеть это из источника страницы. Я удивляюсь, почему есть два index.php?

+0

Каково значение base_url в файле конфигурации? – Lirux

+0

, если ваш base_url имеет класс закрытия в конце, такой как «/», тогда он создает еще один index.php. убедитесь, что этого не произошло. –

ответ

0

изменить это как резец.

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>CRUD</title> 
</head> 
     <body> 
     <h1>Create</h1> 
    <div> 
<?php echo form_open(base_url().'crud/create'); ?> 
    <label for="sku">SKU</label> 
    <input type="text" name="sku" id="sku"><br> 
    <label for="name">Name</label> 
    <input type="text" name="name" id="name"><br> 
    <label for="price">Price</label> 
    <input type="text" name="price" id="price"><br> 
    <input type="submit" name="submit" value="Go"> 
<?php echo form_close(); ?> 
    </div> 
    </body> 
    </html> 
+0

Я бы не рекомендовал добавлять base_url() туда. пусть codeigniter предсказывает URL. это не хорошая практика. –

+0

да, shanusingh ваши права. Я помещаю index.php в base_url(): P – Zoe

Смежные вопросы