orm php 自定义,Eloquent ORM 自定义 builder
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+X web中级 Laravel学习笔记——Eloquent ORM查询、更新、删除、新增
Eloquent ORM简介 larave1所自带的Eloquent oRM是一个非常优美简洁的ActiveRecord实现,用来实现数据库的操作他的每个数据的表都有对应的模型(model)用于数据表 ...
- [转]Laravel 4之Eloquent ORM
Laravel 4之Eloquent ORM http://dingjiannan.com/2013/laravel-eloquent/ 定义Eloquent模型 模型通常放在app/models目录 ...
- 【整理】Laravel中Eloquent ORM 关联关系的操作
Laravel中Eloquent ORM 关联关系的操作 关联数据 定义关联关系 一对一 <?php class User extends Model{// 获取关联到用户的手机public f ...
- Laravel Lumen之Eloquent ORM使用速查-基础部分
使用Eloquent ['eləkwənt] 时,数据库查询构造器的方法对模型类也是也用的,使用上只是省略了DB::table('表名')部分. 在模型中使用protected成员变量$table指定 ...
- php orm 内存泄漏,Lavarel Eloquent ORM常驻进程下的内存溢出问题
Laravel 的 Eloquent ORM 提供了漂亮.简洁的 ActiveRecord 实现来和数据库交互.每个数据库表都有一个对应的「模型」用来与该表交互.你可以通过模型查询数据表中的数据,并将 ...
- 解决laravel框架中Eloquent ORM的save方法无法插入数据的问题
学习laravel中: 今天在测试使用Eloquent ORM将数据使用 save()方法插入到mysql中时,出现了错误,如图所示: 在网上查阅资料后找到了原因: 使用save方法新增数据: lar ...
- laravel组件单独加载(2):模型 Eloquent ORM
模型组件的加入 目前的项目代码是基于上一个文章的,不知道的可以看上一个文章laravel组件单独加载(1):路由 修改composer.json文件加入模型组件 {"require" ...
- Laravel 5.1 文档攻略——Laravel Eloquent ORM最强大也是最难理解的部分:数据关系...
简介 其实大家都知道,数据表之间都是可以关联的,Eloquent ORM是数据模型操作代替表操作,那么表的关联查询,在Eloquent这里也就是模型间的关联查询,这就是本章的主要内容: Eloquen ...
- java web自定义监听器_Android自定义监听器Listener(自定义Java Callback回调事件)
Callback回调事件介绍 Java或Android中创建异步回调最普遍的做法就是使用listener监听器或者observer观察者模式来解决,listener回调事件通常用于实现一个代码去监听另 ...
- python如何自定义模块_python自定义模块和开源模块使用方法
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
最新文章
- [软考]2013年系统架构设计师备考
- 游戏杆编程心得二:如何判断按钮的有效按下
- 企业云计算指南:在安全前提下获得利益
- html简单的图片切换js,一分钟让你学会如何使用js切换图片
- 十二、dbms_logmnr(分析重做日志和归档日志)
- 数据库原理与应用(SQL Server)笔记 第八章 用户自定义数据类型与变量
- the computational graph needed to compute the outputs报错解决
- C# 调用动态链接库读取二代身份证信息
- 部署项目到Linux服务器步骤
- [转载]Hamachi 安装过程
- 结对-人机对战象棋游戏-结对项目总结
- Windows11快捷键大全 win11常用快捷键介绍
- Linux虚拟机安装谷歌浏览器和驱动
- 五月,温暖,风带着花香沁人心脾,独坐窗前
- 笔记 GWAS 操作流程2-1:缺失质控
- 计算机视觉和模式识别领域企业论坛,第三届中国模式识别与计算机视觉大会(PRCV 2020)圆满举办...
- 论文阅读:Neural Motifs: Scene Graph Parsing with Global Context
- 烟沙浮生 | 曾几何时,还是游吟长安的醉客 1
- History of Object Recognition (物体识别)
- 苹果电脑python快捷键_我常用用的MAC快捷键和手势
热门文章
- unity3d-角色控制器续
- [WCF编程]12.事务:事务概述
- 更改VS.NET 默认SCM Provider的方法
- 20200115每日一句
- 日久见人心,以小见大
- Atitit 加强学生就业的规划与艾提拉的治学理念 目录 1. 思路的转换	1 1.1. 发展内需为主模型 vs 外贸模式	1 1.2. 批发模式vs 零售模式vs	1 1.3. 天堂模式vs地狱模
- Atitit 下推自动机﹙PDA﹚说明书 目录 1. 概念组成与原理成分	1 2. 性状	1 3. 适用场景 主治 适应症	1 3.1. 所有场景()。	1 3.2. 语法解析 构建ast	2 3.
- Atitit 技术管理项目管理的职责列表attilax总结 v2 r74 brch4com.docx
- Atitit. 。Jna技术与 解决 java.lang.Error: Invalid memory access
- atitit.技术选型方法总结为什么java就是比.net有前途