2016-02-24 16 views
9

Başımı 5 saat boyunca becermeye başladım ve sonunda sorunu çözdüm ama nedenini bilmeden uyumaya gidemiyorum. İlk önce sorunu açıklayayım.Codeigniter HMVC + ion_auth yapılandırma öğeleri yüklenirken sorun

Codeigniter HMVC uzantısını kullandım ve ion_auth'u ayrı bir modül olarak yükledim.

|-modules 
|--auth 
|---config 
|-----ion_auth.php 
|---controllers 
|-----auth.php 
|---models 
|-----ion_auth_model.php 
|---views 

Bir kullanıcı grubu almaya çalışırken, kablolu SQL hataları almaya başladım. Sonra sorunu daralttım ve config/ion_auth.php'daki öğelerin ion_auth_model.php dosyasında yüklü olmadığını anladım.

ERROR - 2016-02-24 20:09:26 --> Query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as id , . name , . description JOIN ON .=. id WHERE . = '2'' at line 1 - Invalid query: SELECT . as id , . name , . description JOIN ON .=. id WHERE . = '2'

Sonra maddeleri çift çalıştı ve ben ion_auth_model.php her şeyde yöntem çağrıları çift gelen endeksini 'ion_auth' kaldırdığınızda çalışmaya başladı.

işe yaradı neden kimse bana söyleyebilir

$this->tables = $this->config->item('tables'); 
$this->join   = $this->config->item('join'); 

için

$this->tables = $this->config->item('tables', 'ion_auth'); 
$this->join   = $this->config->item('join', 'ion_auth); 

değişti? Dosya sistemi \ çekirdeğinde bulunan

+0

, aşağıdaki gibi ion_auth yapılandırma yüklenen: $ this-> load-> konfigürasyon ('kimlik doğrulama/ion_auth', TRUE); – adarshdec23

+0

Evet. Böyle yüklü – Fawzan

cevap

1

Bu CodeIgniter fonksiyon config- iç uygulamasıdır> öğe() \ Eğer $index parametreyi fonksiyon kontrolleri her iki parametre ise başarısız Config.php

/** 
* Fetch a config file item 
* 
* @param string $item Config item name 
* @param string $index Index name 
* @return string|null The configuration item or NULL if the item doesn't exist 
*/ 
public function item($item, $index = '') 
{ 
    if ($index == '') 
    { 
     return isset($this->config[$item]) ? $this->config[$item] : NULL; 
    } 

    return isset($this->config[$index], $this->config[$index][$item]) ? $this->config[$index][$item] : NULL; 
} 

yapılandırmada başlatılır ve CI örneğinin config[$index]; veya herhangi biri başlatılmamışsa null.

CI örneğinde config[$item] ayarlanmamışsa, işlev her zaman null değerini döndürür. $index'dan kaçındığınızda aramanızın çökmemesi nedeniyle durumun böyle olmadığını varsayalım. Eğer ikinci parametre olarak $index geçerken fonksiyon null döndürür ve o CI örneğinin config[$index] ayarlanmamış demektir çünkü

Yani, kod çöker. Şimdi soru bu yüzden ayarlanmadı ve burada size yardımcı olamam, ama bazı modülleri yüklemek için eksiksiniz gibi görünüyor.

Saygılarımızla İyon Kimlik Doğrulama Modeli yapıcısında