невозможно загрузить пользовательскую библиотеку в CodeIgniter - PullRequest
0 голосов
/ 09 апреля 2020

Вот мой код для пользовательской библиотеки

<?php 
  //$ci =& get_instance();


     class Menu extends CI_Controller{

      function loadViews($viewName = "", $headerInfo = NULL, $pageInfo = NULL, $footerInfo = NULL){

            $this->load->view('includes/header', $headerInfo);
            $this->load->view($viewName, $pageInfo);
            $this->load->view('includes/footer', $footerInfo);
        }

  }

и в моем контроллере, вызывающей этот loadViews вот так

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/Menu.php';
class Login extends CI_Controller 
{  
    public function __construct() 
    {
        parent::__construct();
        //$this->load->database();
        $this->load->model('Login_model');
        $this->load->library('session');
        $this->load->library('menu');
    }
public function abc()
{
$this->menu->loadViews("staff_form", NULL, NULL, NULL);
}

Что я пробовал так: загрузить библиотеку в автозагрузку, создать $CI экземпляр и попробовать, но ничего не получилось

1 Ответ

0 голосов
/ 09 апреля 2020

должно быть размещено в вашем application/libraries/Menu.php

<?php 
class Menu{ //this is not a controller !

   $ci =& get_instance();

   function loadViews($viewName = "", $headerInfo = NULL, $pageInfo = NULL, $footerInfo = NULL){
      $ci->load->view('includes/header', $headerInfo);
      $ci->load->view($viewName, $pageInfo);
      $ci->load->view('includes/footer', $footerInfo);
   }
}
?>

Может быть, вы также должны взглянуть на документы класса Output.

Однако я рекомендую загружать представления из вашего контроллера , Это нежелательная, дополнительная работа. Вы можете создать функцию внутри контроллера вместо создания новой библиотеки.

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