TP6关于hasOne的用法
创始人
2025-05-28 07:41:03

TP6关于hasOne的用法

实际操作中看如下案例

文章分类表:

CREATE TABLE `case_category` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',`name` varchar(50) DEFAULT NULL COMMENT '分类名称',`num` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '分类排序',`status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '分类状态(0=隐藏,1=显示)',`create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='展厅展馆案例分类表';

文章案例表:

CREATE TABLE `cases` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',`cover` varchar(255) DEFAULT NULL COMMENT '封面图片',`title` varchar(255) DEFAULT NULL COMMENT '标题',`title_en` varchar(255) DEFAULT NULL COMMENT '标题英文翻译',`author` varchar(50) DEFAULT NULL COMMENT '作者',`address` varchar(255) DEFAULT NULL COMMENT '地址',`address_en` varchar(255) DEFAULT NULL COMMENT '地址英文翻译',`area` varchar(50) DEFAULT NULL COMMENT '面积',`area_en` varchar(50) DEFAULT NULL COMMENT '面积英文翻译',`content` text COMMENT '内容',`case_category_id` bigint(20) DEFAULT NULL COMMENT '案例分类关联id',`status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态(0=隐藏,1=显示)',`create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='展厅展馆案例表';

需求:查询文章列表以及分类详细信息

 创建两个模型层:CasesModel、CaseCategoryModel,然后在文章模型层写进行查询操作:

 主要查询的是案例,所以在案例的模型层写查询代码,又因为案例表只有关联id,所以hasone的关联要放在案例表模型中:

with(['cases_category'])->select();}/*** 展厅展馆案例分类表关联*/public function casesCategory(){return $this->hasOne(CaseCategoryModel::class,'id','case_category_id');}
}

这样查询的结果是:

如果要查询指定字段,那么可以可以改成如下:

/*** 展厅展馆案例分类表关联*/public function casesCategory(){return $this->hasOne(CaseCategoryModel::class,'id','case_category_id')->bind(['name','cid'=>'id']);}

这样的话,查询结果是如下的结构:

相关内容

热门资讯

阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...