Lumen Repository(仓储)
在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离:http://laravelacademy.org/post/3063.html
Eloquent: 集合:https://d.laravel-china.org/docs/5.3/eloquent-collections
集合:https://d.laravel-china.org/docs/5.3/collections
Laravel & Lumen之Eloquent ORM使用速查-基础部分:https://segmentfault.com/a/1190000005792671
Laravel & Lumen之Eloquent ORM使用速查-进阶部分:https://segmentfault.com/a/1190000005792708
Laravel & Lumen之Eloquent ORM使用速查-高级部分:https://segmentfault.com/a/1190000005792734
Lumen 进阶之数据库交互,Eloquent ORM,Facades,Collection:http://blog.gxxsite.com/lumen-advance-database-interaction/
github链接:https://github.com/andersao/l5-repository
简书这篇讲得很透彻:https://www.jianshu.com/p/dcaaf801c294
这篇也很不错:http://oomusou.io/laravel/laravel-architecture/
实例讲解
先通过migrations建user_log表之后,
使用migrations:http://www.cnblogs.com/cxscode/p/8371789.html
运行下面语句
php artisan make:repository UserLog
此时会创建:
app/Models/UserLog.php //对应Model
app/Repositories/UserLogRepository.php //对应仓储类接口
app/Repositories/UserLogRepositoryEloquent.php //对应仓储类
app/Models/UserLog.php
class UserLog extends Model implements Transformable
{
use TransformableTrait; /**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
// 'id',
'user_id',
'status',
'type',
// 'deleted_at',
// 'created_at',
// 'updated_at',
]; protected $table = 'user_log'; protected $primaryKey = 'id'; }
$fillable默认是空数组,需要补填一些增删改查要操作的字段,$table(表名)和$primaryKey(主键)一般没有,最好自己补全一下
app/Repositories/UserLogRepository.php
interface UserLogRepository extends RepositoryInterface
{
//
}
一般也是一个空接口,可以根据需求加入需要实现的接口
app/Repositories/UserLogRepositoryEloquent.php
class UserLogRepositoryEloquent extends BaseRepository implements AddressRepository
{
/**
* Specify Model class name
*
* @return string
*/
public function model()
{
return Address::class;
} /**
* Boot up the repository, pushing criteria
*/
public function boot()
{
$this->pushCriteria(app(RequestCriteria::class));
} }
默认有一个model获取方法和一个boot启动方法,可以把仓储做为控制器和Model的中间层,可以实现一些方法,控制器调仓储,仓储调Model
Lumen Repository(仓储)的更多相关文章
- Repository 仓储,你的归宿究竟在哪?(三)-SELECT 某某某。。。
写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗? ...
- Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗?
写在前面 关于"Repository 仓储,你的归宿究竟在哪?"这个系列,本来是想写个上下篇,但是现在觉得,很有多东西需要明确,我也不知道接下来会写多少篇,所以上一篇的标题就改成了 ...
- Repository仓储 UnitofWork
Repository仓储 UnitofWork 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来创建仓储类Repository 并且引入 UnitOfWork 我对 ...
- Repository 仓储
Repository 仓储 写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这 ...
- Repository 仓储,你的归宿究竟在哪?(上)
Repository 仓储,你的归宿究竟在哪?(上) 写在前面 写这篇博文的灵感来自<如何开始DDD(完)>,很感谢young.han兄这几天的坚持,陆陆续续写了几篇有关于领域驱动设计的博 ...
- 【无私分享:ASP.NET CORE 项目实战(第五章)】Repository仓储 UnitofWork
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来创建仓储类Repository 并且引入 UnitOfWork 我对UnitOfWork的一些理解 UnitOfW ...
- Repository 仓储,你的归宿究竟在哪?(一)-仓储的概念
写在前面 写这篇博文的灵感来自<如何开始DDD(完)>,很感谢young.han兄这几天的坚持,陆陆续续写了几篇有关于领域驱动设计的博文,让园中再次刮了一阵"DDD探讨风&quo ...
- MVC+Ef项目(2) 如何更改项目的生成顺序;数据库访问层Repository仓储层的实现
我们现在先来看看数据库的生成顺序 居然是 Idal层排在第一,而 web层在第二,model层反而在第三 了 我们需要把 coomon 公用层放在第一,Model层放在第二,接下来是 Idal ...
- 从Entity Framework的实现方式来看DDD中的repository仓储模式运用
一:最普通的数据库操作 static void Main(string[] args) { using (SchoolDBEntities db = new SchoolDBEntities()) { ...
随机推荐
- AutoCAD中导入图片
导入图片涉及到两个关键的问题:如何将图片放置到指定的位置或范围内:如何修改图片的路径类型,如相对路径.绝对路径. 本文以AutoCAD 2018位演示截图来源. 1 将图片放置到指定的位置或范围内 ( ...
- eclipse进行Debug的时候,发出“java breakpoint unable to install breakpoint”错误
错误情况图: 问题的解决方法: 直接点击忽略掉:Don't tell me again 来自网上的答案~~ I had the same error message in Eclipse 3.4.1, ...
- 关于在SSH2中使用ajax技术的总结(主要写Struts2和ajax)
以下内容是自己理解的,因为还没有看过相关的文章,所以,技术上还是有很大的欠缺.不过这也是自己努力思考得到的,如果有什么更好的建议可以回复我. 1. 任务需求: 实现一个包含数据的表格,并且有分页功能. ...
- display:inline-block;在各浏览器下的问题和终极兼容办法
display:inline-block;在各浏览器下的问题和终极兼容办法 一.IE 5.5.6.7 .8(Q)中display:inline-block;失效 兼容办法: IE 5.5.6.7 .8 ...
- ElasticSearch 分布式集群
1.前言 Elasticsearch用于构建高可用和可扩展的系统.扩展的方式可以是购买更好的服务器(纵向扩展(vertical scale or scaling up))或者购买更多的服务器(横向扩展 ...
- C#与数据结构--图的遍历
http://www.cnblogs.com/abatei/archive/2008/06/06/1215114.html 8.2 图的存储结构 图的存储结构除了要存储图中各个顶点的本身的信息外,同时 ...
- AForge.NET Framework-2.2.5
http://www.aforgenet.com/framework/downloads.html AForge.NET Framework-2.2.5 简介 AForge.NET是一个专门为开发者和 ...
- nodeJs-autoMerge
/** * Created by Administrator on 2016/1/16. */ var fs = require('fs'); var filedir='automay'; conso ...
- urlib2 标准代码
import urllib2 def downloadHtml(url,user_agent=None,num_retries=2): print 'Downloading:',url headers ...
- Linux下xargs命令详解及xargs与管道的区别
在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别.为什么要用xarg ...