多对多关联

    具体示例代码可以看imi-demo项目,下面仅为简单展示。

    具体示例代码可以看imi-demo项目,下面仅为简单展示。

    多对多关联会用到的注解:

    @JoinFromMiddle@AutoSelect@AutoUpdate@AutoDelete

    $userRole属性定义的是中间模型,指定中间模型为UserRole,右侧表模型,右侧表模型数据到时会赋值到$role属性中。

    User模型使用id与中间模型的user_id关联,中间模型使用role_id与右侧模型id关联。

    查询

    1. // 可以取到关联关系及右侧模型数据
    2. var_dump($model->userRole);
    3. var_dump($model->role);

    select

    1. $user = UserWithFriend::newInstance();
    2. $user->username = Random::letterAndNumber(6, 16);
    3. // 插入关联关系
    4. $user->userRole->append(
    5. UserRole::newInstance(['role_id'=>2])
    6. );
    7. $result = $user->insert();

    更新

    和insert、update同理,就不作演示了。

    删除

    1. $user = UserWithFriend::find(1);
    2. // 删除数据和关联关系
    3. $result = $user->delete();
    4. if($result->isSuccess())
    5. {
    6. }