上次干这事已经是一年前了,之前的做法特别的繁琐.冗余,具体就是创建一个自定义 Builder 类,继承自 Query\Builder,然后覆盖 Connection 里面获取 Builder 的方法,返回自定义的 Builder,还有其他一系列很长的步骤. 下面是之前的做法: (算了,还是不说了,太蠢),总之,多看看源码有好处 就说最优雅的解决方法吧: laravel 中提供了 Macroable 的 trait,之前一直没有想过可以用上这个东西. 最近才想到可以这么做,源码看这里:https:…
案例 案例:Laravel 在文章列表中附带上前10条评论?,在获取文章列表时同时把每个文章的前10条评论一同查询出来. 这是典型分区查询案例,需要根据 comments 表中的 post_id 字段进行分区,同时根据条件进行排序,把符合条件的前 N 条是数据取出来. 在其他数据库(Oracle, SQL Server,Vertica) 包含了 row_number partition by 这样的函数,能够比较容易的实现. 比如在 SQL Server 中: SELECT * FROM ( S…
前言 一.大纲 写后端API,与数据库打交道无疑是很重要的角色. PHP数据库操作:从MySQL原生API到PDO PHP数据库操作:使用ORM Ref: [PHP] 07 - Json, XML and MySQL 二.细节 SQL 教程 三.初识 Eloquent ORM Eloquent ORM是Laravel框架使用的ORM.Laravel 的 Eloquent ORM 提供了更优雅的ActiveRecord 实现来和数据库的互动.每个数据库表对应一个模型文件. Goto: Eloque…
Laravel 4之Eloquent ORM http://dingjiannan.com/2013/laravel-eloquent/ 定义Eloquent模型 模型通常放在app/models目录中,但是您可以自由地把它们放在任何地方,只要它能根据您的composer.json文件自动加载.除非显示地指定表名,Eloquent默认情况下将模型类名的小写,复数形式作为表名.如我们定义的模型为Game,那么它将操作games数据表. <?php // app/models/Game.php cl…
全局作用域 所谓「全局作用域」,指的是预置过滤器在注册该「全局作用域」的模型类的所有查询中生效,不需要指定任何额外条件. 以 User 模型类为例,我们在系统中可能只想针对已经验证过邮箱的用户进行操作,在没有介绍「作用域」之前,可能你会在应用中到处编写这样的代码: $users = User::whereNotNull('email_verified_at')->... 通过全局作用域类实现 要实现「全局作用域」,首先需要编写一个实现 Illuminate\Database\Eloquent\S…
@NoRepositoryBean:Spring Data Jpa在启动时就不会去实例化BaseRepository这个接口 1.通用接口: import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.N…
转自zrong's blog:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成SWF.SWC.SWF就是我们常说的Flash动画.但是现在SWF已经不仅仅是动画,而是RIA的载体. ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3).只有Flash Player 9及以上播放器才支持AS3编译的SWF.这三…
一.jpa中添加自定义方法 http://blog.csdn.net/qq_23660243/article/details/43194465 二.案例 1.3 引入jpa依赖 <dependencies> <!-- 除去logback支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web&l…
3.2Adding custom methods to mappers(在映射器中添加自定义方法) 有些情况下,我们需要实现一些MapStruct无法直接自动生成的复杂类型间映射.一种方式是复用其他已实现的映射.或者,在使用java8或者更高版本的时候,可以直接在映射器接口中实现自定义方法作为默认方法,如果参数和返回类型匹配, 生成的代码将调用默认方法. 举个例子,加入我们要把Person映射成PersonDto,因为涉及到一些特殊的逻辑,MapStruct无法直接将映射代码生成,您可以从前面的…
连接数据库 一.Outline 三种操作数据库的方式. 二.Facade(外观)模式 Ref: 解读Laravel,看PHP如何实现Facade? Facade本质上是一个“把工作推给别人做的”的类. Facade存在的价值,可以从服务容器谈起.服务容器,可见我的另一篇博文,地址:http://www.cnblogs.com/sweng/p/6430374.html 举个例子,不知道大家以前写代码有没有过obj->method(arg1,arg2)->func(arg3,arg4);的体验.学…