PHP Codeigniter cu Apache pe Linux alpin

Am scris o mică aplicație de testare a codificatorului care rulează în prezent pe fereastra cu ferestre. am creat un linux vm și am încercat să instalez aplicația pe acest nou server virtual. o parte din aplicația mea web rulează corect, dar alte părți, nu. în mod special, aceasta funcționează:

 http://123.123.123.123/myapp/controller1/

dar acest lucru nu este:

 http://123.123.123.123/myapp/controller2/mymethod/1/2/3

Eșuează cu o eroare pe care nu o poate încărca pe controller2_model.

Iată codul actual pentru controlerul care nu reușește (se numește foarte mult xferLogger vs. controller2):

 class xferLogger extends CI_Controller { 
      public function __construct() { 
              parent::__construct();
              echo(2); 
              $this->load->model('xferLogger_model'); 
              $this->load->helper('date'); //this library is needed for the base_url() method that is being called in the view "result.php" 
              $this->load->helper('url'); 
      } 

și iată modelul:

class xferLogger_model extends CI_Model { 
    public function __construct() { 
              $this->load->database();
                } 

Mesajul de eroare complet este: A fost întâlnită o eroare. Nu s-a putut localiza modelul pe care l-ați specificat: xferlogger_model.

Iată ceva ce am observat. în mesajul de eroare, veți observa că "L" în logger este mică. dar în codul meu, este o capitală L. Am verificat controlerul meu, modelul în sine și, de asemenea, fișierul routes.php. Nu pot să găsesc probleme cu carcasa mea.

??

0
poti posta codul in locul in care incerci sa incarci modelul? Puteți, de asemenea, vă rugăm să postați modelul dvs. (doar primul bit + constructor). Dar sunt de acord cu persoanele de mai sus - probabil că aveți "Controller2_model.php" - ar trebui să fie "controller2_model.php"
adăugat autor Laurence, sursa
mesajul complet de eroare este: "A apărut o eroare. Imposibil de găsit modelul pe care l-ați specificat: mycontroller2_model". Am copiat totul ... Am verificat discrepanțele cu cazul .. n-am observat nimic până acum. va continua să verifice.
adăugat autor dot, sursa
de asemenea, a confirmat constructorul pentru controler este chemat, dar moare chiar atunci când încerc să-mi incarca modelul ...
adăugat autor dot, sursa
clasa xferLogger extinde CI_Controller {funcția publică __construct() {parent :: __ construct (); echo (2); $ This-> a sarcinii> modelul ( 'xferLogger_model'); $ This-> a sarcinii> ajutor ( 'data');//această bibliotecă este necesară pentru metoda base_url() care este apelată în vizualizarea "result.php" $ this-> load-> helper ('url'); } și iată modelul: <? PHP class xferLogger_model extinde CI_Model {funcția publică __construct() {$ this-> load-> database ();}
adăugat autor dot, sursa
Am verificat dosare, nume de tabele, nume de fișiere. alte modele din același folder sunt încărcate fără probleme ...
adăugat autor dot, sursa
ca SérgioMichels deja menționat, pe linux (și IIRC, orice alt sistem non-windows) atât numele dosarului/directorului, cât și numele tabelului MySQL sunt sensibile la minuscule. Și, de asemenea, "nu funcționează" nu este un mesaj de eroare valabil.
adăugat autor tereško, sursa
Afișarea erorii complete ar fi de ajutor.
adăugat autor Samy Dindane, sursa
Linux este sensibil la minuscule, poate că acest lucru este încurcarea aplicației.
adăugat autor Sérgio Michels, sursa
De asemenea, sunteți sigur că ați copiat totul, inclusiv fișierele ascunse precum .htaccess
adăugat autor ehudokai, sursa

1 răspunsuri

De la userguide: Numele de clase trebuie să aibă prima literă cu majuscule, cu restul literelor mici. Astfel prin urmare:

class Xferlogger_model extends CI_Model//First letter capitalised

și încărcarea modelului

$this->load->model('xferlogger_model'); //lower case

și numele fișierului dvs. PHP

xferlogger_model.php   //lower case

Codificator Model Userguide

0
adăugat
Am imbunatatit raspunsul meu. Puteți modifica, de asemenea, întrebarea inițială cu codul (codurile) actualizat (e) și eroarea (erorile) pe care acesta o dă?
adăugat autor Laurence, sursa
nici o problema - modul in care invatam toate :)
adăugat autor Laurence, sursa
care nu mi-a rezolvat problema. am trecut prin controler, model și rute și am înlocuit xferLogger cu Xferlogger peste tot.
adăugat autor dot, sursa
O.K. astfel încât cea mai recentă sugestie de a schimba numele modelului la toate literele mici a făcut o diferență. acum funcționează. astfel încât lecția de a lua departe este apoi să păstreze toate numele de model de litere mici?
adăugat autor dot, sursa
și scuzele mele pentru că nu citim cu atenție manualul. aceasta nu este o scuză .. dar încerc să trec de la ferestre, wamp, MySQL la linux, postgres, apache. și codigniter, linux, și postgres sunt toate noi pentru mine, așa că sunt destul de înec în docs. multumesc pentru ajutor.
adăugat autor dot, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT