Eloquent ORM 无疑是非常强大的,为开发者提供了许多好用的查询构造器。有时候,现有的查询构造器不能满足我们的要求时,我们也可以自定义。

模型层父类继承 Eloquent Model ,在构造方法中利用 macro 注册自定义的 builder。示例代码如下:class Model extends \Illuminate\Database\Eloquent\Model

{

public function __construct(array $attributes = [])

{

/**

* 自定义 builder

*/

/**

* page() 方法

* 参数: $page 页数 ;$limit 每页展示多少条

* 使用方法:query链式调用

*/

\Illuminate\Database\Query\Builder::macro('page', function ($page, $limit) {

return $this->limit($limit)->offset(($page - 1) * $limit);

});

parent::__construct($attributes);

}

}

Users 模型继承自 Model,在控制器中使用如下示例。class UsersController extends Controller

{

public function index()

{

// TODO:接收参数 $page 和 $limit

$result = [

'list' => Users::query()->with('XXX')->page($page, $limit)->get(),

'total' => Users::select('id')->count(),

];

return json(200, $result);

}

}

finished!

PS:其实文中自定义的 page() ,与 Eloquent Model 中自带方法 perPage() 功能一致,所以自定义 page() 方法仅作示例使用。

orm php 自定义,Eloquent ORM 自定义 builder相关推荐

  1. 1+X web中级 Laravel学习笔记——Eloquent ORM查询、更新、删除、新增

    Eloquent ORM简介 larave1所自带的Eloquent oRM是一个非常优美简洁的ActiveRecord实现,用来实现数据库的操作他的每个数据的表都有对应的模型(model)用于数据表 ...

  2. [转]Laravel 4之Eloquent ORM

    Laravel 4之Eloquent ORM http://dingjiannan.com/2013/laravel-eloquent/ 定义Eloquent模型 模型通常放在app/models目录 ...

  3. 【整理】Laravel中Eloquent ORM 关联关系的操作

    Laravel中Eloquent ORM 关联关系的操作 关联数据 定义关联关系 一对一 <?php class User extends Model{// 获取关联到用户的手机public f ...

  4. Laravel Lumen之Eloquent ORM使用速查-基础部分

    使用Eloquent ['eləkwənt] 时,数据库查询构造器的方法对模型类也是也用的,使用上只是省略了DB::table('表名')部分. 在模型中使用protected成员变量$table指定 ...

  5. php orm 内存泄漏,Lavarel Eloquent ORM常驻进程下的内存溢出问题

    Laravel 的 Eloquent ORM 提供了漂亮.简洁的 ActiveRecord 实现来和数据库交互.每个数据库表都有一个对应的「模型」用来与该表交互.你可以通过模型查询数据表中的数据,并将 ...

  6. 解决laravel框架中Eloquent ORM的save方法无法插入数据的问题

    学习laravel中: 今天在测试使用Eloquent ORM将数据使用 save()方法插入到mysql中时,出现了错误,如图所示: 在网上查阅资料后找到了原因: 使用save方法新增数据: lar ...

  7. laravel组件单独加载(2):模型 Eloquent ORM

    模型组件的加入 目前的项目代码是基于上一个文章的,不知道的可以看上一个文章laravel组件单独加载(1):路由 修改composer.json文件加入模型组件 {"require" ...

  8. Laravel 5.1 文档攻略——Laravel Eloquent ORM最强大也是最难理解的部分:数据关系...

    简介 其实大家都知道,数据表之间都是可以关联的,Eloquent ORM是数据模型操作代替表操作,那么表的关联查询,在Eloquent这里也就是模型间的关联查询,这就是本章的主要内容: Eloquen ...

  9. java web自定义监听器_Android自定义监听器Listener(自定义Java Callback回调事件)

    Callback回调事件介绍 Java或Android中创建异步回调最普遍的做法就是使用listener监听器或者observer观察者模式来解决,listener回调事件通常用于实现一个代码去监听另 ...

  10. python如何自定义模块_python自定义模块和开源模块使用方法

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

最新文章

  1. [软考]2013年系统架构设计师备考
  2. 游戏杆编程心得二:如何判断按钮的有效按下
  3. 企业云计算指南:在安全前提下获得利益
  4. html简单的图片切换js,一分钟让你学会如何使用js切换图片
  5. 十二、dbms_logmnr(分析重做日志和归档日志)
  6. 数据库原理与应用(SQL Server)笔记 第八章 用户自定义数据类型与变量
  7. the computational graph needed to compute the outputs报错解决
  8. C# 调用动态链接库读取二代身份证信息
  9. 部署项目到Linux服务器步骤
  10. [转载]Hamachi 安装过程
  11. 结对-人机对战象棋游戏-结对项目总结
  12. Windows11快捷键大全 win11常用快捷键介绍
  13. Linux虚拟机安装谷歌浏览器和驱动
  14. 五月,温暖,风带着花香沁人心脾,独坐窗前
  15. 笔记 GWAS 操作流程2-1:缺失质控
  16. 计算机视觉和模式识别领域企业论坛,第三届中国模式识别与计算机视觉大会(PRCV 2020)圆满举办...
  17. 论文阅读:Neural Motifs: Scene Graph Parsing with Global Context
  18. 烟沙浮生 | 曾几何时,还是游吟长安的醉客 1
  19. History of Object Recognition (物体识别)
  20. 苹果电脑python快捷键_我常用用的MAC快捷键和手势

热门文章

  1. unity3d-角色控制器续
  2. [WCF编程]12.事务:事务概述
  3. 更改VS.NET 默认SCM Provider的方法
  4. 20200115每日一句
  5. 日久见人心,以小见大
  6. Atitit 加强学生就业的规划与艾提拉的治学理念 目录 1. 思路的转换 1 1.1. 发展内需为主模型 vs 外贸模式 1 1.2. 批发模式vs 零售模式vs 1 1.3. 天堂模式vs地狱模
  7. Atitit 下推自动机﹙PDA﹚说明书 目录 1. 概念组成与原理成分 1 2. 性状 1 3. 适用场景 主治 适应症 1 3.1. 所有场景()。 1 3.2. 语法解析 构建ast 2 3.
  8. Atitit 技术管理项目管理的职责列表attilax总结 v2 r74 brch4com.docx
  9. Atitit. 。Jna技术与 解决 java.lang.Error: Invalid memory access
  10. atitit.技术选型方法总结为什么java就是比.net有前途