Я начал несколько дней назад с 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» — это имя, которое вы хотите вызвать, оно может быть любым, а второй — фактическим именем класса.
Просто чтобы вы знали, что классы должны начинаться с заглавной буквы и соответствовать имени файла.
надеюсь, это поможет
Других решений пока нет …