`

tp5模型使用关联时,对于全局查询范围的处理

阅读更多

 

 

tp5项目中需要限制一个模型的数据范围,模型类里面定义一个静态的base方法

 

protected static function base($query)
{
    $query->where(['member_id' => request()->member_id]);
}

 

在与其他模型做关联时

public function category()
{
    return $this->belongsTo('category', 'category_id', 'id', [], 'LEFT')->setEagerlyType(0);
}

  

 

 

报错:1052 Column 'member_id' in where clause is ambiguous

 

明显两个表有同名字段member_id,查询器没有自动对该字段做别名处理

 

解决办法:base方法修改为:

protected static function base($query)
{
    $name = $query->getTable();
    $name = empty($name) ? 'member_id' : $name . '.member_id';
    $query->where([$name => request()->member_id]);
}

 对别名前缀做一个处理,完美解决.

0
0
分享到:
评论

相关推荐

    tp5第二季完整资源包.rar

    《ThinkPHP5(TP5)框架深度解析及应用实践》 ThinkPHP5(简称TP5)是中国最流行的PHP开发框架之一,它以其简洁、高效、易学的特点深受开发者喜爱。本资源包是针对"TP5第二季"的完整学习资料集合,旨在帮助用户深入...

    tp5 前后台模板数据库

    【标题】"tp5 前后台模板数据库" 涉及的核心技术是基于ThinkPHP5(简称tp5)框架的前后台界面设计与数据库管理。ThinkPHP5是中国流行的PHP开发框架,它提供了丰富的功能和良好的性能,适用于快速构建中小型Web应用。...

    ThinkPHP5.0数据库和模型

    关联关系的使用让开发者能够更灵活地处理复杂的数据交互,例如在一个用户模型中定义与角色的一对多关联,可以轻松获取用户的所有角色信息。 除此之外,ThinkPHP5.0还提供了事务处理功能,这对于需要执行一系列...

    TP5.0完全开发手册WORD版

    - **查询范围**:可以限制查询结果的数量。 - **模型分层**:根据业务需求将模型分层,便于管理和维护。 - **数组访问**:以数组的形式访问模型数据。 - **JSON 序列化**:将模型数据序列化为 JSON 格式。 - **事件...

    tp5.1.39.rar

    3. **数据库操作**:使用ActiveRecord模式或原生SQL进行数据操作,支持事务处理和模型关联。 4. **模板渲染**:使用模板语言编写视图,结合控制器数据进行渲染。 5. **中间件**:利用中间件实现全局操作,如登录...

    ThinkPHP5快速入门和路由完全指南和数据库模型掌握

    《ThinkPHP5快速入门和路由完全指南》及《数据库模型掌握》是一套全面解析ThinkPHP5框架的教程,旨在帮助初学者迅速上手并深入理解该框架的核心特性。以下是关于这些主题的详细知识点: 1. **ThinkPHP5快速入门**:...

    基于层叠隐马模型的汉语词法分析_刘群.pdf

    关键词中的“汉语词法分析”、“分词”、“词性标注”、“未登录词识别”以及“层叠隐马模型”和“ICTCLAS”都是本文所关注和使用的术语或系统名称。这些关键词概述了文章的研究主题和研究对象,也反映了汉语自然...

    ThinkPHP5快速入门 Word版本

    **查询范围** - **查询限制**:支持条件筛选、排序等功能。 **输入与验证** - **数据验证**:提供数据验证功能,确保数据的有效性。 #### 四、视图与模板 **视图引擎** - **模板引擎**:ThinkPHP5内置支持的模板...

    thinkphp5 模型实例化获得数据对象的教程

    - `useGlobalScope`: 全局查询范围设置。 ### 对象类型转换 在ThinkPHP5中,查询操作默认返回的是模型对象,可以通过对象类型转换来获取数组。在database.php配置文件中,可以设置`resultset_type`参数,将其值...

    基于云模型理论的蚁群算法改进研究

    关键词部分给出了云模型理论、蚁群算法、信息素和定性关联规则,这些关键词是理解和掌握文章内容的关键。在中图分类号中,TP18和TP273分别指代人工智能和自动控制理论,说明了文章涉及领域的广度。文献标识码A以及...

    ThinkPHP5手册.zip

    手册将涵盖模型的创建、数据库连接、CRUD操作、事务处理以及模型关联等。 5. **视图(View)** 视图用于展示数据,ThinkPHP5支持模板引擎,允许开发者创建动态HTML页面。手册将介绍模板语法、变量赋值、布局和部分...

    基于云计算MapReduce的并行关联规则算法改进研究.pdf

    Apriori算法是关联规则挖掘中一种广泛使用的算法,它的主要思想是基于频繁项集的先验知识。Apriori算法的核心在于通过迭代的方法,逐层搜索频繁项集,即先找出所有频繁的单个元素,然后是频繁的二元素组合,依此类推...

    后端pedidos:tp-asw

    在“tp-asw”项目中,路由是定义URL路径和它们关联的处理函数的关键部分。Express允许开发者定义HTTP方法(GET、POST、PUT、DELETE等)与特定路径的组合,以处理不同的用户请求。例如,创建新订单可能对应POST请求...

    thinkphp3.2.3 开发大型商城项目完整笔记

    在ThinkPHP中,可以定义全局作用域的类和常量,这些类和常量可以在任何命名空间中使用。 **6. 命名空间使用注意** - 避免名称冲突。 - 正确使用`use`关键字。 - 合理规划命名空间结构。 **7. tp框架中使用命名...

    Distributed Transaction Processing-The XA+ Specification Version 2

    ### 分布式事务处理:XA+ 规范版本2 ...综上所述,《分布式事务处理:XA+ 规范版本2》详细介绍了分布式事务处理的关键概念和技术细节,对于理解分布式系统中的事务管理和协调机制具有重要的参考价值。

    ThinkPHP学习文档.docx

    composer create-project topthink/think=5.0.* tp5 --prefer-dist ``` - 更新现有项目: ``` cd tp5 composer update ``` **1.3 目录结构** - **应用目录**: `application` - 包含了所有的应用程序文件。 -...

    基于thinkphp6的后台权限管理源码

    此外,ThinkPHP6还支持自定义中间件,通过中间件可以实现全局的权限控制,进一步提升系统的安全性。 在实际开发中,我们还需要考虑一些其他因素,例如角色的层级结构(角色可以包含子角色)、权限的动态赋值等。...

    ThinkPHP6.zip

    - **模型操作**:ThinkPHP6提供了模型类,使得数据库操作更加简便,支持自动完成、关联查询等功能。 - **迁移工具**:通过`php think migrate:run`命令可以执行数据库迁移,方便数据库结构的版本管理。 - **查询...

Global site tag (gtag.js) - Google Analytics