Неопределенное свойство: Posts :: $ posts_model и вызов функции-члена create_post () со значением NULL - PullRequest
0 голосов
/ 06 февраля 2020

Получение двух ошибок при вставке поста У меня также есть столбец "posts_date" (текущая метка времени) и "ID" (автоинкремент) в базе данных. Нужно ли мне добавлять их в форму

МОЯ СХЕМА id int (11) Нет auto_increment post_title varchar (128) Нет posts_date timestamp Нет CURRENT_TIMESTAMP при обновлении CURRENT_TIMESTAMP post_description text No slug varchar (128) No

A PHP Произошла ошибка

Серьезность: Уведомление

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

Имя файла: контроллеры / сообщения. php

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

Backtrace:

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

Файл: C: \ xampp \ htdocs \ myblog \ index. php Строка: 315 Функция: require_once Обнаружено необработанное исключение

Тип: Ошибка

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

Имя файла: C: \ xampp \ htdocs \ myblog \ application \ controllers \ Posts. php

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

Backtrace:

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

Post_model. php

`

class Post_model extends CI_Model{
    public function __construct(){
        $this->load->database();
    }

    public function get_posts($slug = FALSE){
        if ($slug === FALSE){
            $query = $this->db->get('posts');
            return $query->result_array();               
        } 

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

    public function create_post()
    {
        $this->load->helper('url');

        $slug = url_title($this->input->post('post_title'), 'dash', TRUE);

        $data = array(
            'post_title' => $this->input->post('post_title'),
            'posted_by' => $this->input->post('posted_by'),
            'post_description' => $this->input->post('post_description'),
            'slug' => $slug,
        );

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

}`

Post. php

`

        $data['title'] = 'Latest Posts';
        $data['posts'] = $this->post_model->get_posts();

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

    public function view($slug = NULL){
        $data['post'] = $this->post_model->get_posts($slug);

        If(empty($data['post'])){
            show_404();
        }

        $data['title'] = $data['post']['post_title'];

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

    }

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

        $data['title'] = 'Create a Blog post';

        $this->form_validation->set_rules('post_title', 'Title', 'required');
        $this->form_validation->set_rules('posted_by', 'Posted By', 'required');
        $this->form_validation->set_rules('post_description', 'Description', 'required');
        $this->form_validation->set_rules('slug', 'Slug', 'required');

        if ($this->form_validation->run() === FALSE)
        {
            $this->load->view('templates/header');
            $this->load->view('posts/create', $data);
            $this->load->view('templates/footer');

        }
        else
        {
            $this->posts_model->create_post();
            redirect('posts');
        }
    }
}`

Создать. php`

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

<label for="posted_by">Posted By</label>
<input type="text" name="posted_by" /><br />

<label for="post_description">Description</label>
<textarea name="post_description"></textarea><br />

<label for="slug">Slug</label>
<input type="text" name="slug" /><br />

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

`

1 Ответ

0 голосов
/ 07 февраля 2020

Эту строку

        $this->posts_model->create_post();

необходимо исправить и изменить на

        $this->post_model->create_post();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...