编码过程当中 解耦一直是个较为热门的话题。 使用MVC设计模式开发的时候,如果需要查询数据库/操作数据库的时候就得直接引用模型,调用模型。按照常规的调用方法直接以下所示,不使用Eloquent ORM就没法操作数据库,那么就是ORM和这个控制器有着非常之大的耦合性。

$position =  Position::createPosition($params);
$position->users()->attach($userParams);
$position->permissions()->attach($permissionParams);

控制器方面应该是只有返回相关的 不会包含任何逻辑的代码,所以为了解耦我们就该引用repository设计模式。

repository 需要的开发层面

首先我们需要定义一个接口

<?phpnamespace App\Http\Repositories\Interfaces;use App\Http\Repositories\Interfaces\BaseRepositoryInterface;interface UserRepositoryInterface extends BaseRepositoryInterface
{}

可以自己先构造一个基层的BaseInterface来封装常用并且基本的操作模型的方法,创建好接口之后开始绑定repository来进行实现该接口

<?phpnamespace App\Http\Permission\Repositories\Eloquent;use App\Http\Repositories\Eloquent\EloquentBaseRepository;
use App\Http\Permission\Repositories\Interfaces\UserRepositoryInterface;class UserRepository extends EloquentBaseRepository implements UserRepositoryInterface
{}

创建好之后需要在ServiceProvider当中注册并绑定该接口,保证与模型层有相关联。

        $this->app->bind(UserRepositoryInterface::class,function (){return new UserRepository(new User);});

绑定好之后就可以创建service之后使用构造函数来将该interface注入到其中 就可以书写逻辑以及相关编码了。

laravel repository模式使用相关推荐

  1. Laravel repository数据仓库使用 Star.hou红楼一梦

    laravel repository数据仓库 Repository 模式 为了保持代码的整洁性和可读性,使用Repository Pattern 是非常有用的.事实上,我们也不必仅仅为了使用这个特别的 ...

  2. 分享基于EF6、Unitwork、Autofac的Repository模式设计

    目录 分享基于EF6.Unitwork.Autofac的Repository模式设计 一.实现的思路和结构图 二.Repository设计具体的实现代码 三.Repository设计的具体的使用 四. ...

  3. 分享基于Entity Framework的Repository模式设计(附源码)

    关于Repository模式,在这篇文章中有介绍,Entity Framework返回IEnumerable还是IQueryable? 这篇文章介绍的是使用Entity Framework实现的Rep ...

  4. Repository模式

    近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式.就简单看了下. 在<企业架构模 ...

  5. Repository模式与UnitOfWorks模式的运用

    软件开发就像是一个江湖,而设计模式就是一本高深的秘籍每读一次.用一次.想一次都能得到新的领悟,让我们的设计技能有所提高.开始时我们可能会"为了模式而模式",让代码变得乱78糟甚至难 ...

  6. 基于NHibernate的UnitOfWork+Repository模式(AutoFac)–Part2

    非常感谢各位在之前comment中提出的意见..确实Razor语法介绍的文章错别字太多,影响大家阅读. 前面的文章介绍了如何在asp.net中中UnitOfWork模式以及Repository模式的使 ...

  7. Repository模式(转载)

    近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式.就简单看了下. 在<企业架构模 ...

  8. MVC架构中的Repository模式 个人理解

    关于MVC架构中的Repository模式 个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提 ...

  9. MVC+LINQToSQL的Repository模式之(二)数据基类

    namespace Data.TEST {     /// <summary>     /// 数据操作基类     /// </summary>     public abs ...

最新文章

  1. JSTL标签之核心标签
  2. 求二叉树指定结点到根的路径c语言,二叉树根节点到叶子结点和为指定值的路径...
  3. Lync Server 2013企业版部署系列之五:前端服务器软件准备
  4. linux 添加path环境变量中,在Linux里设置环境变量PATH的方法是什?
  5. CCIE-LAB-第六篇-IPV6+SLLAC
  6. B+树索引和哈希索引
  7. android 开发工具类,Android中常用开发工具类—持续更新...
  8. java 有三个map,第一个map是第二个和第三个map的key的对应映射,对比第二个map的值和第三个map对的值是否一致
  9. 什么情况下你的工作最为成功_在不倦怠的情况下开始成功学习
  10. nginx 查看当前的连接数
  11. 食品工业中HACCP应用现状和未来发展(转载)
  12. vue-scroller回到顶部
  13. JavaScript简易文字对战游戏
  14. sentaurus TCAD的安装与使用
  15. 探索硅谷奇迹的本质--周末荐书之《硅谷之谜》
  16. python-将csv转txt
  17. 10-25 查询选修张老师讲授所有课程的学生
  18. Ubuntu环境下挂载新硬盘
  19. 基于不同策略的英文单词的词频统计和检索系统(C++)
  20. react 实现渐变色背景样式

热门文章

  1. 学生党毕业论文福利,参考文献的排版方法(利用bib文件的方式)
  2. bootstrap-fileinput的简单使用(图片上传和编辑)
  3. C语言程序设计运动会管理系统(一)
  4. Redis搭建主从复制实现高可用
  5. qt通过QComboBox实现文本框自动记忆、补全和下拉选项填写
  6. uni-app 调用相机或相册图片并转为base64格式上传图片
  7. 实现unity三维动画播放以及触摸翻转放大缩小
  8. java mysql单库多表_第69节:Java中数据库的多表操作
  9. TokenGazer一问到底 | 第31期:研究员 vs OracleChain
  10. 如何完成Nexus 9开机后的激活流程