#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 ) ?>