Вставить данные в базу данных во фреймворке

Я новичок в codeigniter. Мне нужно вставить данные в базу данных, для чего я создаю контроллер с именем Home.php, ниже приведен этот код; Пока я работаю, я получаю сообщение об ошибке, например Message: Undefined property: Home :: $ Yes. Пожалуйста, помогите пожалуйста, заранее спасибо

 <?php
   defined('BASEPATH') OR exit('No direct script access allowed');
   class Home extends CI_Controller{
        public function index()
    {
        $this->load->database();
        $this->load->model('yes');

    }
    public function savedata()
    {
        $this->load->view('demo');
        if ($this->input->post('submit'))
        {
        $name=$this->input->post('name');
        $email=$this->input->post('email');
        $content=$this->input->post('content');
        $this->Yes->saverecords($name,$email,$content);     
        echo "Records Saved Successfully";
         }
         }
          }

Здесь вид pahe по имени - demo.php

<html>
<head>
    <title></title>
</head>
<body>
<form method = "post" action = "" enctype = "multipart/form-data"  
 id = "User">     


               <h2 align = "center">Student Marks</h2>
               <h3>Name:</h3>               
               <input type = "text" name = "name" />        
               <h3>Email ID</h3> 
               <input type = "text" name = "email" />       
               <h3>Content </h3>  
               <input type = "text" name = "content" />   


        <button type = "submit" value = "submit" name = "submit" >Submit</button>
        <button type = "reset" value = "Reset" >Reset</button> 


        </form>

</body>
</html>

вот страница модели на Yes.php

<?php
class Yes extends CI_Models
{
    function saverecords($name,$email,$content)
    {
    $query = "insert into news values('$name','$email','$mobile')";
    $this->db->query($query);
    }
}

Привет @Prem в домашнем контроллере Отредактируйте модель, подобную этой $ this-> load-> model ('Yes', 'yes'); тогда псевдоним да используйте в функции savedata (). Спасибо

Mayur Panchal 08.05.2018 08:59

Просто чтобы вы знали, что CI_Models должен быть CI_Model codeigniter.com/user_guide/general/models.html#what-is-a-mod‌ el

Mr. ED 08.05.2018 10:26

Пожалуйста, всегда отвечайте на ответы, давая несколько комментариев или, если это помогает вам, отмечая его как зеленый и поддерживая, это лучший способ поблагодарить всех программистов.

Pradeep 16.05.2018 13:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
70
2

Ответы 2

Надеюсь, что это поможет вам

При загрузке контроллера database и model в __construct, как это, вы добавляете его только в метод index.

public function __construct()
{
   parent::__construct();
   $this->load->database();
   $this->load->model('yes');
}

public function index()
{
}

public function savedata()
{
    if ($this->input->post('submit'))
    {
        $name = $this->input->post('name');
        $email = $this->input->post('email');
        $content = $this->input->post('content');

        $data = ['name' => $name,'email' => $email,'content' => $content];
        $insert_id = $this->yes->saverecords($data); 
        if ($insert_id)
        {
            echo "Records Saved Successfully";
        }    

    }
    $this->load->view('demo');
}

Второй

$this->load->view('demo'); ваша форма в методе savedata(), тогда URL формы в порядке, но если нет Действие формы должно перенаправлять на метод savedata, потому что вы получаете доступ к значению сообщения в нем.

<form method = "post" action = "<?=base_url('home/savedata');?>" enctype = "multipart/form-data">

В-третьих, ваша модель должна быть такой:

<?php
class Yes extends CI_Models
{
    function saverecords($data)
    {
       $this->db->insert('table_name', $data);
       return $this->db->insert_id();
    }
}

Прежде всего вам нужно загрузить модель в свой контроллер.

 defined('BASEPATH') OR exit('No direct script access allowed');
   class Home extends CI_Controller{
 function __construct() {
        parent::__construct();
        $this->load->model('Yes');

    }
 public function savedata()
    {
        if ($this->input->post('submit'))
        {
       insert_array=array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'content' => $this->input->post('content')
);
$data_id = $this->Yes->saverecords($insert_array);
if ($data_id >0){
echo "Records Saved Successfully";
}
         }
         }
}

В модели

function saverecords($insert_array) {
        if ($this->db->insert('news', $insert_array)) {
            return $this->db->insert_id();
        }
        return 0;
    }

Другие вопросы по теме