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()) { ...
随机推荐
- Using xcodebuild To Export a .ipa From an Archive
Xcode 6 changes how you export a .ipa from an archive for adhoc distribution. It used to be that you ...
- CSS的7种常用的垂直居中的方法
1.绝对定位上下百分之五十然后上外边距做外边距都是他的宽高的一半 #child{ width: 200px; height: 150px; position: absolute; left: 50%; ...
- kubernetes1.5.2--部署DNS服务
本文基于kubernetes 1.5.2版本编写 在kubernetes1.2之前,采用skydns+kube2dns+etcd的方式来部署dns.而从1.3开始,则部署方式有了一点儿变化,将skyd ...
- SilverLight-3:目录
ylbtech-SilverLight-Index: 1.A,返回顶部 Layout The Layout Containers - The Panel Background Borders Si ...
- c++11 std::prev、std::next、std::advance与auto 使用
auto 定义变量时放在变量前,无需知道具体变量类型,系统可自行推断类型,减少编程工作,特别是在模板使用时,使用更方便. 下面简单例子: auto a=; auto b='a'; auto s=&qu ...
- Java Enum的多态性
转载自:http://pf-miles.iteye.com/blog/187155 Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态?不过还是先 ...
- My sql 实用教程
http://wenku.baidu.com/link?url=uwWWeGTZU61MQSSArf2pYRd4jPd7k7gNsx75KxEUKO1MlMLAAFiIF-fus3CY4RLyyzbZ ...
- Android 开发 Eclipse使用SVN
1 help--->install new software--->add 2 name自定义 location填入内容见3 3 http://subclipse.tigris.org/s ...
- ssh隧道远程连接mysql
有时候比如一些云主机,没有开放3306端口,这里可以用ssh隧道来连接数据库,更加安全 注意点: 1.本地ssh可以登录远程服务器,(密码或者秘钥) 2.远程数据库需要赋权限给隧道端的ip 命令: s ...
- mac 下 pycharm 快捷键
用过快捷键立即感觉高大上了,最主要的是很方便啊!很强大 cmd b 跳转到声明处(cmd加鼠标) opt + 空格 显示符号代码 (esc退出窗口 回车进入代码) cmd []光标之前/后的位置 op ...