Codeigniter HMVC + ion_auth Fehler beim Laden der Konfigurationselemente

9

Ich habe meinen Kopf für 5 Stunden geschlagen und ich habe das Problem endlich gelöst, aber ich kann einfach nicht einschlafen, ohne den Grund dafür zu kennen. Lassen Sie mich das Problem zuerst erklären.

Ich habe Codeigniter-HMVC-Erweiterung verwendet und ion_auth als separates Modul installiert.

%Vor%

Als ich versuchte, eine Benutzergruppe zu bekommen, fing ich an, verdrahtete SQL-Fehler zu bekommen. Dann habe ich das Problem eingegrenzt und herausgefunden, dass die Elemente in config/ion_auth.php nicht in der ion_auth_model.php -Datei geladen wurden.

  

FEHLER - 2016-02-24 20:09:26 - & gt; Abfragefehler: Sie haben einen Fehler in Ihrem   SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrem MySQL-Server entspricht   Version für die richtige Syntax in der Nähe von 'as id ,. name ,   . description JOIN ON. =. id WHERE. = '2' 'in Zeile 1 - Ungültig   Abfrage: SELECT. als id ,. name ,. description JOIN ON. =. id   WOHER . = '2'

Dann habe ich ein paar Sachen ausprobiert und wenn ich den Index 'ion_auth' entfernt habe einige Methodenaufrufe in ion_auth_model.php alles hat angefangen zu arbeiten.

Ich habe mich geändert

%Vor%

bis

%Vor%

Kann mir jemand sagen, warum es funktioniert hat?

    
Fawzan 24.02.2016, 16:56
quelle

1 Antwort

1

Dies ist die innere Implementierung der CodeIgniter-Funktion config- & gt; item () im Dateisystem \ core \ Config.php

%Vor%

Wenn Sie den Parameter $index übergeben, prüft die Funktion, ob beide Parameter in der Konfiguration initialisiert sind, und gibt config[$index] der CI-Instanz zurück. oder null , wenn einer von ihnen nicht initialisiert ist.

Wenn config[$item] nicht in der CI-Instanz gesetzt ist, gibt die Funktion immer null zurück. Nehmen wir an, das ist nicht der Fall, da Ihr Aufruf nicht abstürzt, wenn $index vermieden wird.

Wenn Sie also $index als zweiten Parameter übergeben, stürzt Ihr Code ab, weil die Funktion null zurückgibt, und das bedeutet, dass config[$index] der CI-Instanz nicht gesetzt ist. Jetzt ist die Frage, warum es nicht gesetzt ist, und ich kann dir hier nicht helfen, aber es sieht so aus, als ob du versäumst, einige Module zu laden.

Mit freundlichen Grüßen

    
Dacklf 04.03.2016, 17:05
quelle