cry / cry-cms-thing
All MySQL record is Object
2.11
2025-08-14 07:07 UTC
Requires
- php: >=7.3
- 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', 'Title cannot be empty'); } } }
Create New
$page = new Pages(); $page->title = 'TEST'; $page->setAttributes([ 'url' => '/test/', 'text' => 'Тест', ]); $result = $page->save();
Update
$page = Pages::find()->byPk(1); if ($page !== null) { $page->image_id = 1; $page->setAttributes([ 'text' => 'Новый текст', ]); $page->save(); }
Delete
$page = Pages::find()->byPk(1); if ($page !== null) { $page->delete(); }
Find element by attributes
$pages = Pages::find()->listByAttributes([ 'deleted' => 0, ], 0, 10); $page = Pages::find()->oneByAttributes([ 'deleted' => 0, ]);
Create object by SQL query
- 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);