如何在codeigniter中插入数据

时间:2015-08-03 15:35:11

标签: codeigniter

我在代码中做了更改,但它还没有工作   这是controller-submenu.php

class Submenu extends CI_Controller {


 public function __construct() {
    parent::__construct();
    $this->load->library('form_validation');
     if (!$this->session->userdata('is_admin_login')) {
        redirect('admin/home');
    }
}

public function index() {
    $arr['page'] = 'submenu';

    $qry ='Select * from subcategory';
    $arr['submenu'] = $this->db->query($qry)->result_array(); 

     //$data['view']='edit';   

    $this->load->view('admin/vwManageSubmenu',$arr);

}



 public function add_submenu()
  {

if(isset($_POST['submit']))
{
    $name = mysql_real_escape_string($_POST['name']);
    $url = $_POST['url'];
    $cat = $_POST['category'];


    $result = $this->submenu_model->insert_subcategory($name,$url,$cat);

    if(isset($result))
    {
        echo 'insert successfully';
        redirect('admin/submenu/');

    }
    else
    {
        echo 'insert Failed';
    }

}
  $arr['page'] = 'submenu';
  $data['category'] = $this->submenu_model->get_category(); 
     $this->load->view('admin/vwAddSubmenu',$data);  

 }



 }   

这是模型submenu_model.php      

 class Submenu_model extends CI_Model{
function __construct(){
    parent::__construct();
    $this->load->database();
   }
public function get_category()
 {
$query = $this->db->query->("SELECT * FROM category");
$result = $query->result_array();
return $result;
 }

function insert_subcategory($name,$url,$cat)
 {
  $data = array(
    'name' => $name,
    'url' => $url ,
    'idcategory' => $cat
);

$this->db->insert('subcategory', $data);
 }
 }  

这是查看vwAddsubmenu.php

<form method="post" action="<?php echo base_url() ?>admin/submenu/add_submenu">
<input type="text" name="name" value="Sub Category Name">
<input type="text" name="url" value="Sub Category URL">
<select name="category">
    <?php
        foreach ($category as $item)
        {
            ?>
            <option id="<?php echo $item['id'] ?>"><?php echo $item['name'] ?></option>
        <?php
        }
    ?>

</select>
<input type="submit" name="submit" value="Add Sub Category">

   现在显示错误

遇到PHP错误

严重性:注意

消息:未定义属性:子菜单:: $ submenu_model

文件名:admin / submenu.php

行号:56

致命错误:在第56行的C:\ xampp \ htdocs \ admin \ application \ controllers \ admin \ submenu.php中的非对象上调用成员函数get_category()      如何解决

2 个答案:

答案 0 :(得分:0)

在__construct函数上,您必须包含模型:

$this->load->model('model_name');

并在控制器中调用模型函数,如下所示:

$this->model_name->model_function();

答案 1 :(得分:0)

我的声誉不到50,所以我无法发表评论。因此,请不要将我的回复作为您问题的答案。 你为什么这样做: -

$data['category'] = $this->submenu_model->get_category();

您正在传递活动记录以进行查看。这样做你想做什么?为什么要从控制器传递查询到视图。我认为这不是一个正确的方法。

$arr['page'] = 'submenu';

    $qry ='Select * from subcategory';
    $arr['submenu'] = $this->db->query($qry)->result_array(); 

     //$data['view']='edit';   

    $this->load->view('admin/vwManageSubmenu',$arr);

如果您在视图中需要某些数据库信息,最好直接在视图中编写查询。 如果您使用的是CI 3.X,那么控制器文件的名称应该类似于&#34; Submenu.php&#34;首都的第一封信。