2016-04-03 24 views
1

Birkaç gün önce FlightPHP ile başladım. Şimdi kendi modelimi imagePreviewModel olarak yarattım. Ben sınıf kayıtlı ve yöntemi getAllImages() denilen kumandanın İçindeFlightPHP bir sınıfa kayıt olduktan sonra metodu bulunamıyor

<?php 
class imagePreviewModel{ 
    private $db; 

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

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

: Burada

modelidir. Şimdi Tarayıcı ile sayfayı açmak ve bir hata alıyorum:

<?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(); 
?> 

Can kimse yardım: (0) İşte

kumandanın kodudur) tanımsız yöntem PDO :: getAllImages (hiç Çağrısı ben mi?


Sorunu buldum. PDO sınıfını kaydediyorum ancak 'imagePreviewModel' adlı bir dersi kaydetmek istiyorum. Bu sınıfı nasıl kaydedebilirim? FlightPHP sayfasında bu örnektir:

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

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

Ama sınıf ismi ve parametre nedir? Ve neden iki kez Kullanıcı yazdı? Biraz açıklamaya ihtiyacım var.

cevap

0

Sorununuzu görüyorsunuz, sınıf PDO'sunu kaydettirmeye çalıştığınız doğru değilsiniz, imagePreviewModel sınıfı değil, bunun nasıl olacağını bildirmeniz gerekir.

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

"kayıt" ilk argüman aramak istediğiniz isim olduğuna dikkat edin, istediğiniz herhangi bir şey olabilir ve ikinci param gerçek sınıf adıdır.

Sadece sınıfların büyük harfle başlayıp dosya adıyla eşleşmesi gerektiğini biliyorsunuz.

Umarım bu yardımcı olur

İlgili konular