2016-04-03 3 views
1

私は数日前にFlightPHPで始めました。今度は私自身のモデルimagePreviewModelを作成しました。私は、クラスを登録し、メソッドgetAllImages()と呼ばれるコントローラの内部FlightPHP登録後のクラスの検索方法はありません

<?php 
class imagePreviewModel{ 
    private $db; 

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

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

:ここ

がモデルです。今、私は、ブラウザでページを開くとエラーが表示されます。ここでは、未定義のメソッドPDOへ コール:: getAllImages()(0)

は、コントローラのコードです:

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

誰でも助けることができます私?


問題が見つかりました。クラスPDOを登録しますが、 'imagePreviewModel'というクラスを登録します。どのようにそのクラスを登録できますか? FlightPHPページで はこの例である:

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

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

しかし、クラス名とパラメータは何ですか?そしてなぜ2回ユーザーを書いたのですか?私は少し説明が必要です。

答えて

0

あなたが問題であると思うのは、PDOクラスではなく、クラスimagePreviewModelを登録しようとしていることです。以下はその宣言方法です。

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

「登録」の最初の引数は呼び出したい名前であることに注意してください、それはあなたが望む何でもすることができ、第2のparamが、実際のクラス名です。

クラスは大文字で始まり、ファイル名と一致する必要があります。

私はこれが役立つことを望みます。

関連する問題