Сообщение: Неопределенная переменная: content_view

Переменная, переданная в контроллер, не работает в представлении.

В моем контроллере у меня есть:

 public function index() 
 {   
     $login_data['content_view'] = 'login/login';       
     //echo $login_data['content_view']; die(); //display: login/login
     $this->load->module("template");
     $this->template->login_template($login_data);
  }

И на мой взгляд:

    $this->load->view('partial/header');
    $this->load->view($content_view); // not working
    //$this->load->view('login/login'); // working 
    $this->load->view('partial/footer');

Я получаю следующее сообщение об ошибке: Сообщение: Неопределенная переменная: content_view

Ваше представление не знает о контроллере! вам нужно прочитать это: codeigniter.com/user_guide/general/…

Vickel 07.04.2019 00:05

Не могли бы вы показать, что делает метод login_template?

Hasta Dhana 07.04.2019 06:06
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
178
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Это не то, как вы загружаете представления (внутри представления)!

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

Пример: вы загружаете статический заголовок и общие шаблоны, затем вы загружаете свой конкретный контент, а затем, возможно, общий нижний колонтитул, как показано ниже:

<?php

class Page extends CI_Controller {

    public function index()
    {
            $data['page_title'] = 'Your title';
            $this->load->view('header');
            $this->load->view('menu');
            $this->load->view('content', $data);
            $this->load->view('footer');
    }

}

Так работает архитектура MVC. Кроме того, хорошо написана документация Codeigniter, см.: Просмотры - Codeigniter

вы можете очень хорошо загрузить представление изнутри представления: stackoverflow.com/a/17812513/2275490

Vickel 07.04.2019 13:25

Большое спасибо за ваш ответ. Я забыл сказать, что использую модульное расширение HMVC.

Majid 07.04.2019 15:19

Я нашел проблему. Я впервые использую модульное расширение HMVC и забыл добавить переменную $data в контроллер template.php следующим образом:

 public function login_template($data=Null) 
 {
    $this->load->view("template/login_template", $data);
 }

До того, как я использовал:

   public function login_template($data=Null) 
   {
      $this->load->view("template/login_template");
   }

Так что еще раз спасибо

попробуй это:

 $data = array();
 $this->template->login_template($login_data);
 $data['content_view'] = 'login/login';
 $this->load->view('header', $data);

Большое спасибо! Я забыл добавить переменную $data.

Majid 13.04.2019 22:34

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