Autoload ile dizi etkin olarak config dosyası iade CodeIgniter

3 Cevap php

So I'm using CodeIgniter to build a website and I've made it so that all my specific settings are stored in a config file that's automatically loaded. I've also built a page that loads the settings file, makes a nice little table and allows me to edit everything from that page, afterwards it saves the entire page again (I know I could've done the same with a database but I want to try it this way).

My problem is that I can't seem to use this bit when autoloading of my config file is enabled, but when I disable autoloading I can't seem to manually load it, it never finds my variables. So what I'm doing here is just taking all values from the config file and putting them in a single array so I can pass this array onto my settings administration page (edit/show all settings).

$this->config->load('site_settings', TRUE);
$data['settings'] = $this->config->item('site_settings');
...
$this->load->view('template', $data);

config / site_settings.php

 <?php
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    $config['header_img'] = './img/header/';
    $config['copyright_text'] = 'Copyright Instituto Kabu';
    $config['copyright_font'] = './system/fonts/motoroil.ttf';
    $config['copyright_font_color'] = 'ffffff';
    $config['copyright_font_size'] = '32';

3 Cevap

Tamam, ben bir çözüm buldum. Sorun Yapılandırma kütüphaneye yerleşik bu onay oldu:

if (in_array($file, $this->is_loaded, TRUE))
{
    return TRUE;
}

Yani bu gibi görünmek için ekstra bir parametre ile düzenlenebilir:

function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE, $skip_loadedCheck = FALSE)
    {
        ...

                if(!$skip_loadedCheck) {
                    if (in_array($file, $this->is_loaded, TRUE))
                    {
                            return TRUE;
                    }
                }

Şimdi, bir dizideki tüm verileri yüklemek için ben sadece bunu yapabilirsiniz:

$this->config->load('site_settings', TRUE, FALSE, TRUE);
$data['settings'] = $this->config->item('site_settings');

Dosya içeriği kesinlikle doğrudur? (Kontrol parantez, tırnak ...)

Config dosya adı Talep ettiğiniz biri olarak aynı NEDİR?

Varolmayan bir öğeyi almak için çalışıyoruz, bu yüzden sadece yanlış (Boolean) verir değil mi? Sen madde "site_settings" yüklemeye çalışıyorlar, ancak dizi endeksinde bu isimde bir madde var. Tek bir öğeyi yüklerken bunun yerine, örneğin, olmalı $ this-> config-> madde ('header_img');

Bunu yüklerken de 2. parametre, her yapılandırma dosyası yapılandırma dosyasının adına karşılık gelen bir dizi dizin saklanır.

$ This-> config ['site_settings'].

Yapılandırma sınıfı hakkında daha fazla bilgi ve kullanışındaki here