Привет, ребята, у меня есть этот код, и я не уверен, что я делаю неправильно, данные определяются, насколько я вижу, это ошибки, которые я получаю:
A PHP Error was encountered Severity: Notice Message: Undefined variable: data Filename: models/site_model.php Line Number: 14 A PHP Error was encountered Severity: Warning Message: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/BLOCK/system/core/Exceptions.php:185) Filename: core/Common.php Line Number: 442 A Database Error Occurred You must use the "set" method to update an entry. Filename: /Applications/XAMPP/xamppfiles/htdocs/BLOCK/models/site_model.php Line Number: 14
контроллер:
<?php class Site extends CI_Controller { function index(){ $this->load->view('option_view'); } function create(){ $data = array( 'subject' => $this->input->post('subject'), 'body' => $this->input->post('body') ); $this->Site_model->add_record($data); $this->index(); } } ?>
модель:
<?php class Site_model extends CI_Model { function get_records() { $query = $this->db->get('items'); return $query->result(); } function add_record() { $this->db->insert('items', $data); $return; } function update_record() { $this->db->where('id', 1); $this->db->update('items', $data); } function delete_record() { $this->db->where('id', $this->url->segment(3)); $this->db->delete('items'); } } ?>
и вид:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>option_view</title> <style type="text/css" media="screen"> label {display:block;} </style> </head> <body> <h2>Create</h2> <?php echo form_open('site/create'); ?> <p> </label for="subject">Subject</label> <input type="text" name="subject" id="subject"> </p> <p> </label for="body">Body</label> <input type="text" name="body" id="body"> </p> <p> <input type="submit" value="Submit"> </p> <?php echo form_close();?> </body> </html>
Что вы, ребята, считаете?
Очень признателен
Метод в ваших моделях не ожидает параметра. Например:
Изменить:
function add_record()
чтобы:
function add_record($data)
Вы никогда не передаете $data
своим методам. Это проблема с областью.
function add_record() { $this->db->insert('items', $data); $return; }
В этом случае add_record()
не знает, что такое $data
(и рассматривает его как null
потому что оно не определено.
Область переменных
В этих методах:
function add_record() { $this->db->insert('items', $data); $return; } function update_record() { $this->db->where('id', 1); $this->db->update('items', $data); }
Вы не передали данные методам, поэтому данные $ undefined.