2016-12-22 6 views
0

Ich habe ein Projekt whith diese Struktur in Controller-Ordner:Laden Sie ein Modell in Codeigniter 3.0.3

  • places.php
  • users.php
  • items.php
  • ...

Und in meinen Modellen Ordner:

  1. Place.php (der Name im Inneren ist Platz Klasse Active \ Modell erweitert)
  2. User.php
  3. ...

In meinem Controller places.php, wenn ich ein Modell, das ich habe zu ladende

$this->load->model('Place'); 

Und danach muss ich meine Methode so nennen: genau das zu tun

$this->place->get_all_places(); 

Es war Arbeit in meinem localhost aber nicht in meinem Server Ich überprüfe meine PHP-Version auf dem Server und es ist 5.6.

Wie kann ich das beheben?

Das ist mein Modell-Datei ist Place.php

class Place extends ActiveRecord\Model 
    { 
     static $table_name = 'places'; 
     static $has_many = array(
     ); 


     public function get_all_places() 
     { 
      return true; 
     } 
} 

Das ist mein Controller Datei places.php ist

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

    class Places extends MY_Controller { 

     function __construct() 
     { 
      parent::__construct(); 

      if($this->user){ 
       $access = TRUE; 

      }else{ 
       redirect('login'); 
      } 

     } 
     function index() 
     { 
      $this->content_view = 'places/all'; 
     } 

     function get_places(){ 

      $this->theme_view = ''; 

      $this->load->model('Place'); 
      $this->place->get_all_places(); 
     } 
} 

Und der Fehler es war, dass:

Unable to locate the model you have specified: place 
+0

try '$ this-> Place-> get_all_places()' – Phiter

+0

Ich habe versucht, aber nicht funktioniert. Es scheint, als ob man das Modell nicht lädt. Die Fehlermeldung Ich bekomme es: Das angegebene Modell kann nicht gefunden werden: place –

+0

Fügen Sie mehr von Ihrem Controller und Modellcode hinzu, es ist schwierig, das Problem auf diese Weise zu finden. – Phiter

Antwort

3

Ihre Modelldatei Name sollte

Places_model.php 

und innen Modell

class Places_Model extends CI_Model # Changed 
{ 
    static $table_name = 'places'; 
    static $has_many = array(); 


    public function get_all_places() 
    { 
     return true; 
    } 

} 

Models in Codeigniter

+0

Muss ich aber das CI_Model ändern? Da mein gesamtes Projekt mit dieser Klasse arbeitet, erweitert Place ActiveRecord \ Model = S –

+0

@MetElIdrissi, wenn dies hilft, es als Akzeptieren zu markieren –

0

Ich denke, sein alles ist right.But das Problem auf diese Linie zurückzuführen ist ..

class Place extends ActiveRecord\Model 

Wenn Sie definieren ein neues Modell, das die CI_Model erweitert. Und dann Name des neuen Modells kann nicht wie ActiveRecord\Model .Name kann als ActiveRecordModel .SO eine Lösung für Sie sein kann .. ersetzen Sie über Zeile wie unten, wenn Sie das neue Modell mit dem Namen ActiveRecordModel in application/core Ordner definieren.

class Place extends ActiveRecordModel 

Eine andere Lösung kann sein, wenn Sie kein neues Modell definiert haben.dann ersetzen Sie einfach über die Linie als

class Place extends CI_Model 
+0

Hi @Hikmat Sijapat Ich versuche, was Sie gesagt haben, aber nicht funktioniert. Immer der gleiche Fehler Das von Ihnen angegebene Modell konnte nicht gefunden werden: Place, Place oder Place_Model –

Verwandte Themen