qq3737002 2015-07-04 21:41:19 6663次浏览 0条评论 2 1 0

mxq_user表结构

CREATE TABLE `mxq_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户名',
  `auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '认证key',
  `password_hash` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '密码',
  `password_reset_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '密码重置令牌',
  `mobile` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机',
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '电子邮件',
  `status` smallint(6) NOT NULL DEFAULT '10' COMMENT '用户状态',
  `created_at` int(11) NOT NULL COMMENT '创建时间',
  `updated_at` int(11) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户表';

mxq_user_token表结构

CREATE TABLE `mxq_user_token` (
  `token_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '令牌编号',
  `client_type` varchar(10) NOT NULL COMMENT '客户端类型 android wap',
  `user_id` int(11) NOT NULL COMMENT '用户编号',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `access_token` varchar(50) NOT NULL COMMENT '登录令牌',
  `access_expire` int(10) unsigned NOT NULL COMMENT '登录时间',
  `login_time` int(11) DEFAULT NULL COMMENT '最后登陆时间',
  `login_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '最后登陆ip',
  PRIMARY KEY (`token_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `mxq_user_token_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `mxq_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8 COMMENT='移动端登录令牌表';

CONSTRAINT mxq_user_token_ibfk_1 FOREIGN KEY (user_id) REFERENCES mxq_user (id) ON DELETE CASCADE ON UPDATE CASCADE`

此句就的作用就是当mxq_user中的记录删除时mxq_user_token表对应的关联记录也级联删除,更新时也更新

创建好外键后可以通过Gii工具生成Model

在User模型中自动生成如下代码

    public function getUserTokens()
    {
        return $this->hasMany(UserToken::className(), ['user_id' => 'id']);
    }

在UserToken模型中生成如下代码

    public function getUser()
    {
        return $this->hasOne(User::className(), ['id' => 'user_id']);
    }

hasManyhasOne的用法请参考文档

觉得很赞
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册