我几天前开始使用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();
但是类名和参数是什么?为什么写了两次用户?我需要一点解释。
我看到了你的问题,你是对的,你试图注册类PDO,而不是类imagePreviewModel,下面是你应该如何声明它。
Flight::register('imagePreviewModel', 'imagePreviewModel');
$list = Flight::imagePreviewModel()->getAllImages();
请注意,"register"的第一个参数是您想要调用的名称,它可以是您想要的任何名称,第二个参数是实际的类名。
只是为了让您知道类应该以大写字母开头并与文件名匹配。
我希望这能帮助