Thinkphp3.2.3 关系模型小细节

本文介绍了ThinkPHP3.2.3框架中模型关系的一些关键点,包括模型类名不能包含下划线,使用驼峰命名会自动匹配下划线分隔的表名,以及在关系模型中的mapping_key设置方法。详细解释了如何正确配置模型关系以确保数据的正确关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关系模型中不能有下滑下。否则不能识别该关系模型。

模型的类名不能代下滑下

$Feedback=D("feedback_q");

不能进入对应关系模型

$Feedback=D("feedbackQ");

可以进入对应的关系模型

模型类名使用驼峰命名法会对应下划线分割的表

假如表前缀是think_

feedbackQ对应的表是 think_feedback_q

feedbackq对应的表是 think_feedbackq


关系模型中的mapping_key

/*HAS_MANY BELONGS_TO HAS_ONE*/
protected $_link = array(
'answer' => array(
'mapping_type'      =>  self::HAS_MANY,
'class_name'        =>  'feedbacka',
'mapping_name'      =>  'answers',
//本表里的主键
'mapping_key'       =>  'id',
//关联表里的外键
'foreign_key'       =>  'q_id',
// 'condition'       =>  '1=1',
'mapping_order'       =>  ' stmp asc',
// 'relation_foreign_key'  =>  'id',
// 'relation_table'    =>  'think_role_user',

);

class RelationModel中:

$mappingKey =!empty($val['mapping_key'])? $val['mapping_key'] : $this->getPk(); // 关联键名

$pk   =  $result[$mappingKey];


ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用 开发和简化企业级应用开发而诞生的。拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和 改进,众多的典型案例确保可以稳定用于商业以及门户级的开发。 ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的 Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类 库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单 和快速的特性中受益。ThinkPHP本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应 用开发更简单、更快速。为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践! ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产 品发布/销售。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值