FlightPHP после регистрации класса не могу найти метод

Я начал несколько дней назад с 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();

Но каково имя класса и параметр? А почему то написал два раза юзер? Мне нужно небольшое объяснение.

1 ответ

Я вижу вашу проблему, вы правы в том, что вы пытаетесь зарегистрировать класс PDO, а не класс imagePreviewModel, ниже вы должны заявить об этом.

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

Обратите внимание, что первый аргумент "register" - это имя, которое вы хотите вызвать, оно может быть любым, а второй параметр - фактическим именем класса.

Просто чтобы вы знали, что классы должны начинаться с заглавной буквы и соответствовать имени файла.

надеюсь, это поможет

Другие вопросы по тегам