Проблема для отправки данных в базу данных - PullRequest
0 голосов
/ 13 марта 2020

Я написал код ниже, но он дает мне несколько ошибок (перечисленных после кода). Я не знал, как ее решить.

Модель -> News_model


    <?php
    class News_model extends CI_Model {

            public function __construct()
            {
                    $this->load->database();
            }
            public function get_news($slug = FALSE)
            {
                if ($slug === FALSE)
                {
                        $query = $this->db->get('news');
                        return $query->result_array();
                }

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

    **Controller -> News.php **

    ```<?php
    class News extends CI_Controller {

            public function __construct()
            {
                    parent::__construct();
                    $this->load->model('News_model');
                    $this->load->helper('url_helper');
            }

            public function index()
            {
                    //$this->load->model('News_model');
                    $data['news'] = $this->News_model->get_news();
                    $data['title'] = 'News archive';

                    $this->load->view('templates/header', $data);
                    $this->load->view('news/index', $data);
                    $this->load->view('templates/footer');
            }

            public function view($slug = NULL)
            {
                    $data['news_item'] = $this->News_model->get_news($slug);

                    if (empty($data['news_item']))
                    {
                            show_404();
                    }

                    $data['title'] = $data['news_item']['title'];

                    $this->load->view('templates/header', $data);
                    $this->load->view('news/view', $data);
                    $this->load->view('templates/footer');
            }

            public function set_news()
            {
                $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('news', $data);
            }

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

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

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

просмотров -> просмотры / новости / создать. php


    <h2><?php echo $title; ?></h2>

    <?php echo validation_errors(); ?>

    <?php echo form_open('news/create'); ?>

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

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

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

    </form>

просмотр -> просмотры / новости / индекс. php


    <h2><?php echo $title; ?></h2>

    <?php foreach ($news as $news_item): ?>

            <h3><?php echo $news_item['title']; ?></h3>
            <div class="main">
                    <?php echo $news_item['text']; ?>
            </div>
            <p><a href="<?php echo site_url('news/'.$news_item['slug']); ?>">View article</a></p>

    <?php endforeach; ?>

просмотр -> просмотры / новости / успех . php


    <!DOCTYPE html>
    <html>
    <head>
        <title>Success</title>
    </head>
    <body>
        <h2>Succeed</h2>

    </body>
    </html>

views-> views / news / view. php


    <?php
    echo '<h2>'.$news_item['title'].'</h2>';
    echo $news_item['text'];

Ошибки

A PHP Произошла ошибка. Уровень серьезности: Уведомление

Сообщение: неопределенное свойство: News :: $ news_model

Имя файла: controllers / News. php

Номер строки: 72

Backtrace:

Файл: C: \ xampp \ htdocs \ oproject \ application \ controllers \ News. php Строка: 72 Функция : _error_handler

Файл: C: \ xampp \ htdocs \ oproject \ index. php Строка: 315 Функция: require_once

Обнаружено необработанное исключение Тип: Ошибка

Сообщение: вызов функции-члена set_news () со значением NULL

Имя файла: C: \ xampp \ htdocs \ oproject \ application \ cont rollers \ News. php

Номер строки: 72

Backtrace:

Файл: C: \ xampp \ htdocs \ oproject \ index. php Линия : 315 Функция: require_once

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Изменить news_model на News_model здесь

 $this->News_model->set_news();
 $this->load->view('news/success');
0 голосов
/ 14 марта 2020

Пожалуйста, загрузите вашу модель в контроллер, где News_model, используя

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

и используйте

$this->News_model->set_news(); 

в create() метод

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