Codeigniter библиотеки params - PullRequest
       2

Codeigniter библиотеки params

1 голос
/ 20 июня 2011

Некоторое время назад я добавил несколько параметров в библиотеку, и они работали просто отлично ... Я не знаю, испортил ли я какой-либо параметр конфигурации или что-то еще, сейчас я не могу передать точно такие же параметры.

Шаблон библиотеки:

<code> <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Template {

        public $config = array();



        public function __construct($params = NULL)
        {   

                echo '<pre>'; print_r($params); echo '
'; / * Это должно напечатать массив (и ничего не печатать): массив ( [menus] => Массив ( [Administradores] => индекс [Logs] => журналы ) ) * / if ($ params) { foreach ($ params as $ key => $ value) { $ this-> config [$ key] = $ value; } } } публичная функция cms_template ($ pagina = NULL, $ modulo = NULL, $ titulo = NULL, $ data = NULL, $ dir = 'backoffice') { $ CI = & get_instance (); $ CI-> load-> библиотека ( 'сессии'); if (isset ($ this-> config ['menus'])) $ menus = $ this-> config ['menus']; еще $ Меню = NULL; $ dados ['dados'] = массив ( 'id_administrador' => $ CI-> session-> userdata ('id_administrador'), 'email' => $ CI-> session-> userdata ('email'), 'nome' => $ CI-> session-> userdata ('nome'), 'modulo' => $ modulo, 'titulo' => $ titulo, 'menus' => $ menus ); $ CI-> load-> view ($ dir. '/ Topo', $ dados); $ CI-> load-> view ($ dir. '/'. $ Pagina, $ data); $ CI-> load-> Вид ($ реж '/ rodape.); }

Контроллер:

public function __construct() {
        parent::__construct();
        $this->auth_model->verificaLogin('id_administrador','backoffice/login');
        $this->load->model('administradores_model');
        $params=array(
            'menus' => array(
                'Administradores'=>'index',
                'Logs'=>'logs'
            )
        );

        $this->load->library('template', $params);
    }

Когда я запускаю его, он выдает ошибку n в представлении:

<?php
            foreach ($dados['menus'] as $key => $value) {
                echo '<li>'.active_anchor('/'.$this->uri->segment(1).'/'.$this->uri->segment(2).'/'.$value, $key, '/'.$this->uri->uri_string()).'</li>';
            }
            ?>

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: указан неверный аргумент для Еогеасп ()

1 Ответ

0 голосов
/ 28 июня 2011

о вашем последнем комментарии о том, почему автозагрузка этой библиотеки перестает работать!

Это не имеет ничего общего с CodeIgniter, кроме ограничения PHP. Там, вероятно, название конфлит! Я не уверен, но помните, что у PHP есть ограничение, у ваших классов должно быть уникальное имя. Я не знаю, является ли "template" зарезервированным именем CI, но попробуйте другое имя! Если вы решаете эту проблему, у вас должна быть хорошая схема именования, поэтому CI использует суффиксы и префиксы. Или пространства имен, но CI не поддерживает его!

Надеюсь, этот совет поможет!

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