多对多关联
具体示例代码可以看imi-demo项目,下面仅为简单展示。
具体示例代码可以看imi-demo项目,下面仅为简单展示。
多对多关联会用到的注解:
、@JoinFromMiddle
、、
@AutoSelect
、、
@AutoUpdate
、、
@AutoDelete
$userRole
属性定义的是中间模型,指定中间模型为UserRole
,右侧表模型,右侧表模型数据到时会赋值到$role
属性中。
User
模型使用id与中间模型的user_id
关联,中间模型使用role_id
与右侧模型id
关联。
查询
// 可以取到关联关系及右侧模型数据
var_dump($model->userRole);
var_dump($model->role);
select
$user = UserWithFriend::newInstance();
$user->username = Random::letterAndNumber(6, 16);
// 插入关联关系
$user->userRole->append(
UserRole::newInstance(['role_id'=>2])
);
$result = $user->insert();
更新
和insert、update同理,就不作演示了。
删除
$user = UserWithFriend::find(1);
// 删除数据和关联关系
$result = $user->delete();
if($result->isSuccess())
{
}