一对多关联

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

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

    当然imi-demo里一对多的例子选的不好,不过不重要,理解意思就行。

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

    如 imi-demo 中代码所示,UserWithFriend继承User。类定义了一个$friends属性,这个属性关联UserFriend模型。

    idUserFrienduser_id关联,你可能会发现没有@JoinFrom注解,没有的话默认取左侧模型的主键。

    查询

    1. var_dump($model->friends); // friends数据可以直接取到,是UserFriend实例

    select

    1. $user = UserWithFriend::newInstance();
    2. $user->username = 'Yurun';
    3. // 由于继承了User类,所以一对一关系还是存在,依旧可以使用
    4. $user->ex->intro = '这个人很懒,什么也没留下';
    5. $user->friends->append(
    6. UserFriend::newInstance(['friend_user_id'=>1]),
    7. );
    8. $result = $user->insert();

    更新

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

    删除

    1. $user = UserWithFriend::find(1);
    2. // 删除ID为1的记录,UserEx对应表也会删除这条关联记录
    3. $result = $user->delete();
    4. if($result->isSuccess())
    5. {
    6. echo 'success';