Неопределенная переменная базы данных

#php #codeigniter #view #controller #codeigniter-4

#php #codeigniter — инициализатор кода #Вид #контроллер #codeigniter-4

Вопрос:

Blog.php код ниже:

     <?php namespace AppControllers;
    
    use AppModelsBlogModel;
    
    class Blog extends BaseController
    {
        public function index()
        {
            $model = new BlogModel();
    
            //echo "<pre>";
    
            //print_r($model);
    
            $dados = [
                'posts' => $model->get()->paginate(5),
                'pager' => $model->pager
            ];
            return view('posts/blog_index', $dados);
        }
 

blog_index.php код ниже:

     <?= $this->extend('layouts/main') ?>
    
    <?= $this->section('content') ?> 
 

    <?= $this->include('/components/busca_blog', $dados['posts'] ) ?>   
    <?= $this->include('/components/posts_recentes', $dados['posts'] ) ?>   
    <?= $this->include('/components/categorias', $categorias) ?>   
    <?= $this->include('/components/arquivo', $dados['posts'] ) ?>
 

Я не вижу, в чем моя ошибка, это вызывает исключение ErrorException: «Неопределенная переменная: dados». Что касается переменной $ categorias, я изучаю, как использовать более одной таблицы для каждого контроллера.

Версия Codeigniter: 4.0.4, работающая через xampp

Комментарии:

1. $posts вместо $dados['posts'] и т.д. Время от времени внимательно читайте руководство.

Ответ №1:

Контроллер Blog.php

 class Blog extends BaseController
{
    public function index()
    {
        $model = new BlogModel();

        $dados = [
            'posts' => $model->get()->paginate(5),
            'pager' => $model->pager
        ];
        return view('posts/blog_index', $dados);
    }
}
 

Просмотр blog_index.php

 <?= $this->include('/components/posts_recentes', $posts) ?> 

    if(!empty($posts))
    {
        print_r($posts);
    }
 

Примечание: — Для справки см. Это:-

https://codeigniter4.github.io/userguide/outgoing/views.html#adding-dynamic-data-to-the-view

Ответ №2:

Обновите blog_index.php страница: Из

 <?= $this->include('/components/busca_blog', $dados['posts'] ) ?>
<?= $this->include('/components/posts_recentes', $dados['posts'] ) ?>   
<?= $this->include('/components/categorias', $categorias) ?>   
<?= $this->include('/components/arquivo', $dados['posts'] ) ?>
 

Для

 <?= $this->include('/components/busca_blog', $posts ) ?>   
<?= $this->include('/components/posts_recentes', $posts ) ?>   
<?= $this->include('/components/categorias', $categorias) ?>   
<?= $this->include('/components/arquivo', $posts ) ?>