yiisoft/active-record

Yii ActiveRecord 库

dev-master / 3.0.x-dev 2024-09-16 09:27 UTC

This package is auto-updated.

Last update: 2024-09-16 09:28:02 UTC


README

Yii

Yii ActiveRecord


Latest Stable Version Total Downloads codecov Mutation testing badge static analysis type-coverage

本包提供了 ActiveRecord 库。它在 Yii 框架 中使用,但也应该可以独立使用。

支持的数据库

要求

  • PHP 8.1 或更高版本。

安装

可以使用 Composer 安装此包

composer require yiisoft/active-record

注意:您必须安装实现所需的存储库。

示例

composer require yiisoft/db-sqlite

配置容器与数据库连接

将以下代码添加到配置文件中,例如

config/common/di/db.php:

use Yiisoft\Db\Connection\ConnectionInterface;
use Yiisoft\Db\Sqlite\Connection;
use Yiisoft\Db\Sqlite\Driver;

return [
    ConnectionInterface::class => [
        'class' => Connection::class,
        '__construct()' => [
            'driver' => new Driver($params['yiisoft/db-sqlite']['dsn']),
        ],
    ]
];

config/common/params.php:

return [
    'yiisoft/db-sqlite' => [
        'dsn' => 'sqlite:' . dirname(__DIR__) . '/runtime/yiitest.sq3',
    ]
]

有关如何配置连接的更多信息,请参阅 Yii 数据库

config/common/bootstrap.php:

use Psr\Container\ContainerInterface;
use Yiisoft\ActiveRecord\ConnectionProvider;
use Yiisoft\Db\Connection\ConnectionInterface;

return [
    static function (ContainerInterface $container): void {
        ConnectionProvider::set($container->get(ConnectionInterface::class));
    }
];

有关为 Active Record 定义 DB 连接的其他方法,请参阅 定义 DB 连接

定义您的 Active Record 类

use Yiisoft\ActiveRecord\ActiveRecord;

/**
 * Entity User.
 *
 * Database fields:
 * @property int $id
 * @property string $username
 * @property string $email
 **/
#[\AllowDynamicProperties]
final class User extends ActiveRecord
{
    public function getTableName(): string
    {
        return '{{%user}}';
    }
}

有关更多信息,请参阅 创建 Active Record 模型

用法

现在您可以使用 Active Record

use App\Entity\User;

$user = new User();
$user->set('username', 'yiiliveext');
$user->set('email', 'yiiliveext@mail.ru');
$user->save();

使用 ActiveQuery 的用法

use App\Entity\User;
use Yiisoft\ActiveRecord\ActiveQuery;

$userQuery = new ActiveQuery(User::class);

$user = $userQuery->where(['id' => 1])->one();

$username = $user->get('username');
$email = $user->get('email');

文档

如果您需要帮助或有任何问题,Yii 论坛 是一个好去处。您还可以查看其他 Yii 社区资源

许可证

Yii Active Record 库是免费软件。它根据 BSD 许可证条款发布。有关更多信息,请参阅 LICENSE

Yii 软件 维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack