📜  YII 关系 (1)

📅  最后修改于: 2023-12-03 14:48:40.718000             🧑  作者: Mango

YII 关系

YII 是一个基于组件的高性能 PHP 框架,它提供了一个非常灵活且高效的方式来开发 Web 应用程序。YII 的主要目标是促进快速开发和易于维护的 Web 应用程序。

关系数据库

YII 提供了一套强大的 ORM(对象关系映射)工具,它允许您与关系数据库交互。ORM 允许您将数据库表视为对象,即表中的每个字段都映射到对象属性。通过 ORM,您可以轻松地执行数据库查询和更改数据库状态。

以下是一个简单的 YII 活动记录类,它映射到一个名为 users 的数据库表:

class User extends \yii\db\ActiveRecord
{
    public static function tableName()
    {
        return 'users';
    }
}

这个类继承了 yii\db\ActiveRecord,因此它继承了所有与关系数据库交互的方法。tableName 方法告诉 YII 类与哪个数据库表相对应。

通过这个活动记录类,您可以轻松执行数据库查询,例如:

$user = User::findOne(1);
echo $user->username;

这个代码片段将从数据库中查询 ID 为 1 的用户,并显示它们的用户名。

关系

关系是用于将多个数据库表链接在一起的一种方法。YII 支持三种类型的关联:一对一、一对多和多对多。

以下是一个简单的 YII 活动记录类,它表示一个部门:

class Department extends \yii\db\ActiveRecord
{
    public static function tableName()
    {
        return 'departments';
    }

    public function getUsers()
    {
        return $this->hasMany(User::class, ['department_id' => 'id']);
    }
}

这个类有一个名为 getUsers 的方法,它返回一个用户表的查询构建器,这个方法使用 hasMany 关系来实现。hasMany 关系表示一个部门可以有多个用户。

以下是一个使用此关系的示例:

$department = Department::findOne(1);
foreach($department->users as $user) {
    echo $user->username . "\n";
}

这个代码片段将从数据库中查询 ID 为 1 的部门,并遍历其关联的用户,并显示它们的用户名。

总结

YII 是一个非常强大的 PHP 框架,它提供了一个灵活且高效的方式来开发 Web 应用程序。YII 的 ORM 和关联功能让与关系数据库交互变得非常容易,让开发人员能够专注于业务逻辑而不是低级的数据库操作。