我收到一个错误。它在站点在 OpenServer 上启动时出现。它说找不到类。甚至需要这个类吗?
致命错误:未捕获错误:在 D:\OpenServer\OpenServer\domains\Internetstor\models\Category.php:16 中找不到类“getConnection”:16 堆栈跟踪:#0 D:\OpenServer\OpenServer\domains\Internetstor\controllers\SiteController .php(15): Category::getCategoriesList() #1 D:\OpenServer\OpenServer\domains\Internetstor\components\Router.php(80): SiteController->actionIndex() #2 D:\OpenServer\OpenServer\domains \Internetstor\index.php(18): Router->run() #3 {main} 在第 16 行的 D:\OpenServer\OpenServer\domains\Internetstor\models\Category.php 中抛出
这是类别代码:
<?php
/**
* Класс Category - модель для работы с категориями товаров
*/
class Category
{
/**
* Возвращает массив категорий для списка на сайте
* @return array <p>Массив с категориями</p>
*/
public static function getCategoriesList()
{
// Соединение с БД
$db = include getConnection::getConnection;
// Запрос к БД
$result = $db->query('SELECT id, name FROM category WHERE status = "1" ORDER BY sort_order, name ASC');
// Получение и возврат результатов
$i = 0;
$categoryList = array();
while ($row = $result->fetch()) {
$categoryList[$i]['id'] = $row['id'];
$categoryList[$i]['name'] = $row['name'];
$i++;
}
return $categoryList;
}
/**
* Возвращает массив категорий для списка в админпанели <br/>
* (при этом в результат попадают и включенные и выключенные категории)
* @return array <p>Массив категорий</p>
*/
public static function getCategoriesListAdmin()
{
// Соединение с БД
$db = Db::getConnection();
// Запрос к БД
$result = $db->query('SELECT id, name, sort_order, status FROM category ORDER BY sort_order ASC');
// Получение и возврат результатов
$categoryList = array();
$i = 0;
while ($row = $result->fetch()) {
$categoryList[$i]['id'] = $row['id'];
$categoryList[$i]['name'] = $row['name'];
$categoryList[$i]['sort_order'] = $row['sort_order'];
$categoryList[$i]['status'] = $row['status'];
$i++;
}
return $categoryList;
}
/**
* Удаляет категорию с заданным id
* @param integer $id
* @return boolean <p>Результат выполнения метода</p>
*/
public static function deleteCategoryById($id)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'DELETE FROM category WHERE id = :id';
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
return $result->execute();
}
/**
* Редактирование категории с заданным id
* @param integer $id <p>id категории</p>
* @param string $name <p>Название</p>
* @param integer $sortOrder <p>Порядковый номер</p>
* @param integer $status <p>Статус <i>(включено "1", выключено "0")</i></p>
* @return boolean <p>Результат выполнения метода</p>
*/
public static function updateCategoryById($id, $name, $sortOrder, $status)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = "UPDATE category
SET
name = :name,
sort_order = :sort_order,
status = :status
WHERE id = :id";
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
$result->bindParam(':name', $name, PDO::PARAM_STR);
$result->bindParam(':sort_order', $sortOrder, PDO::PARAM_INT);
$result->bindParam(':status', $status, PDO::PARAM_INT);
return $result->execute();
}
/**
* Возвращает категорию с указанным id
* @param integer $id <p>id категории</p>
* @return array <p>Массив с информацией о категории</p>
*/
public static function getCategoryById($id)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'SELECT * FROM category WHERE id = :id';
// Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
// Указываем, что хотим получить данные в виде массива
$result->setFetchMode(PDO::FETCH_ASSOC);
// Выполняем запрос
$result->execute();
// Возвращаем данные
return $result->fetch();
}
/**
* Возвращает текстое пояснение статуса для категории :<br/>
* <i>0 - Скрыта, 1 - Отображается</i>
* @param integer $status <p>Статус</p>
* @return string <p>Текстовое пояснение</p>
*/
public static function getStatusText($status)
{
switch ($status) {
case '1':
return 'Отображается';
break;
case '0':
return 'Скрыта';
break;
}
}
/**
* Добавляет новую категорию
* @param string $name <p>Название</p>
* @param integer $sortOrder <p>Порядковый номер</p>
* @param integer $status <p>Статус <i>(включено "1", выключено "0")</i></p>
* @return boolean <p>Результат добавления записи в таблицу</p>
*/
public static function createCategory($name, $sortOrder, $status)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'INSERT INTO category (name, sort_order, status) '
. 'VALUES (:name, :sort_order, :status)';
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':name', $name, PDO::PARAM_STR);
$result->bindParam(':sort_order', $sortOrder, PDO::PARAM_INT);
$result->bindParam(':status', $status, PDO::PARAM_INT);
return $result->execute();
}
}
这是 getConection 代码:
<?php
/**
*
*/
class getConnection
{
/**
* Устанавливает соединение с базой данных
* @return \PDO <p>Объект класса PDO для работы с БД</p>
*/
public static function getConnection()
{
// Получаем параметры подключения из файла
$paramsPath = ROOT . '/config/db_params.php';
$params = include($paramsPath);
// Устанавливаем соединение
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
$db = new PDO($dsn, $params['user'], $params['password']);
// Задаем кодировку
$db->exec("set names utf8");
return $db;
}
}