1

我几天前开始使用 FlightPHP。现在我创建了自己的模型,名为imagePreviewModel.

这是模型:

<?php
class imagePreviewModel{
    private $db;

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

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

在控制器内部,我注册了类并调用了方法getAllImages()。现在我用浏览器打开页面并得到一个错误:调用未定义的方法 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();

但是类名和参数是什么?为什么写了两次用户?我需要一点解释。

4

1 回答 1

0

我看到了您的问题,您是对的,您正在尝试注册 PDO 类而不是 imagePreviewModel 类,下面是您应该如何声明它。

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

请注意,“register”的第一个参数是您要调用的名称,可以是您想要的任何名称,第二个参数是实际的类名。

只是为了让您知道类应该以大写字母开头并匹配文件名。

我希望这有帮助

于 2017-04-26T21:06:50.447 回答