2016-04-03 7 views
1

Ich begann vor einigen Tagen mit FlightPHP. Jetzt habe ich mein eigenes Modell imagePreviewModel erstellt. HierFlightPHP nach dem Registrieren einer Klasse kann keine Methode finden

ist das Modell:

<?php 
class imagePreviewModel{ 
    private $db; 

    public function __construct(PDO $db){ 
     $this->db = $db; 
    } 

    public function getAllImages(){ 
     return $this->db->query('SELECT * FROM images'); 
    } 
} 
?> 

Innerhalb des Controllers ich die Klasse registriert und so genannte Methode getAllImages(). Jetzt öffne ich die Seite mit dem Browser und erhalte eine Fehlermeldung: Call to undefined Methode PDO :: getAllImages() (0)

Hier ist der Code der Steuerung:

<?php 
require 'flight/Flight.php'; 
include 'private/models/imagePreviewModel.php'; 

Flight::route('/', function(){ 
    Flight::register('imagePreviewModel', 'PDO', array('mysql:host=localhost;dnbname=share','root','')); 
    $imagePreviewModel = Flight::imagePreviewModel(); 
    $List = $imagePreviewModel->getAllImages(); 


    Flight::render('general', NULL); 
}); 

Flight::start(); 
?> 

kann jemand helfen mich?


Ich glaube, ich habe das Problem gefunden. Ich registriere die Klasse PDO, aber ich möchte eine Klasse namens 'imagePreviewModel' registrieren. Wie kann ich diesen Kurs registrieren? Am FlightPHP Seite ist dieses Beispiel:

// Register your class 
Flight::register('user', 'User'); 

// Get an instance of your class 
$user = Flight::user(); 

Aber was ist der Klassenname und die Parameter? Und warum schrieb der User zweimal? Ich brauche eine kleine Erklärung.

Antwort

0

Ich sehe Ihr Problem, Sie haben Recht, dass Sie versuchen, die Klasse PDO und nicht die Klasse imagePreviewModel zu registrieren, unten ist, wie Sie es deklarieren sollten.

Flight::register('imagePreviewModel', 'imagePreviewModel'); 
$list = Flight::imagePreviewModel()->getAllImages(); 

Bitte beachten Sie, dass das erste Argument von „Register“ ist der Name, den Sie anrufen möchten, kann es alles, was Sie wollen und die zweite param ist der Name der aktuellen Klasse.

Nur damit Sie wissen, dass Klassen mit einem Großbuchstaben beginnen und den Dateinamen übereinstimmen müssen. Ich hoffe, dies hilft

Verwandte Themen