cry / cry-cms-thing
All MySQL record is Object
2.09
2025-03-31 20:10 UTC
Requires
- ext-json: *
- ext-pdo: *
- cry/cry-cms-db: ^1.10
README
<?php use CryCMS\Helpers\Thing; /** * @property string $title * @property string $url * @property string $text * @property array $image_id * @property int $deleted * * @property array $image */ class Pages extends Thing { public const TABLE = 'pages'; public const SOFT_DELETE = true; }
<?php use CryCMS\Helpers\Thing; class Image extends Thing { public const TABLE = 'images'; protected function validate(): void { if (empty($this->title)) { $this->addError('title', 'Заголовок не может быть пустым'); } } }
Создание новой записи
$page = new Pages(); $page->title = 'TEST'; $page->setAttributes([ 'url' => '/test/', 'text' => 'Тест', ]); $result = $page->save();
Изменение записи
$page = Pages::find()->byPk(1); if ($page !== null) { $page->image_id = 1; $page->setAttributes([ 'text' => 'Новый текст', ]); $page->save(); }
Удаление записи
$page = Pages::find()->byPk(1); if ($page !== null) { $page->delete(); }
Поиск по атрибутам
$pages = Pages::find()->listByAttributes([ 'deleted' => 0, ], 0, 10); $page = Pages::find()->oneByAttributes([ 'deleted' => 0, ]);
Получение обьектов из SQL выборки
- CryCMS-Db
$pages = Pages::Db()->where(["deleted = '0'"])->getAll(); $pages = Pages::itemsObjects($pages); $page = Pages::Db()->where(["deleted = '0'"])->getOne(); $page = Pages::itemObject($page); OR $pagesList = Db::table(Pages::TABLE)->where(["deleted = '0'"])->getAll(); $pages = Pages::itemsObjects($pagesList); $pageOne = Db::table(Pages::TABLE)->where(["deleted = '0'"])->getOne(); $page = Pages::itemObject($pageOne);