TP关联模型:可以把关联的表当成主表的字段一样更新

配置的顺序。从右到左为:惯例配置->应用配置->模块配置->动态配置。和5.0最大的区别是,5.1版本的配置参数全部是二级配置。TP5.1中,应用配置主要包括应用配置目录和模块配置目录。5.1没有config.php配置文件,默认配置都在app.php配置文件。可以增加其他的自定义配置文件,配置文件的名称就是一级配置名。5.1的配置参数全部采用二级配置的方式(默认一级配置为app),所以当使用config('name')的时候其实相当于使用:config('app.name')。

数据库连接的配置。ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。在应用配置目录或者模块配置目录下面的database.php中配置数据库参数。

模型定义。模型会自动对应数据表(!!),模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写。在模型中除了可以调用数据库类的方法之外,还可以定义自己的方法,所以也可以把模型看成是数据库的增强版。

模型关联。通过模型关联操作把数据表的关联关系对象化,解决了大部分常用的关联场景,封装的关联操作比起常规的数据库联表操作更加智能和高效,并且直观。避免在模型内部使用复杂的join查询和视图查询。TP5框架选择了方法定义而不是属性定义的方式,每个关联属性其实是对应了一个模型的(关联)方法,这个关联属性和模型的数据一样是动态的,并非模型类的实体属性。

举例。商品表与订单表。一般的做法是,商品表只是商品表,另做进销表,算库存再决定订单是否能下单。能不用外键尽量别用外键,用表链接 JOIN。所有商品不做实际删除,仅作删除标记,也就是软删除。简言之,join对数据库的查询压力要大些,少用;关联模型由thinkphp官方封装,比较灵活,对数据库的压力小,过滤了一些不安全关联的情况。Join的表不能当成主表的字段一样更新,会提示出错;而TP5的关联模型 可以把关联的表当成主表的字段一样更新。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181210B0I5HE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券