博客列表 >laravel扩展数据库访问类

laravel扩展数据库访问类

平胸啊春
平胸啊春原创
2020年02月22日 11:07:50625浏览

首先在Providers目录下创建一个DBServiceProvider.php文件

  1. <?php
  2. namespace App\Providers;
  3. use Illuminate\Support\ServiceProvider;
  4. use Illuminate\Database\Query\Builder as QueryBuilder;
  5. class DBServiceProvider extends ServiceProvider
  6. {
  7. public function boot()
  8. {
  9. // 返回一条记录
  10. QueryBuilder::macro('item',function(){
  11. $res = $this->first();
  12. return $res==null?false:(array)$res;
  13. });
  14. // 返回列表
  15. QueryBuilder::macro('lists',function(){
  16. $res = $this->get()->all();
  17. foreach($res as $key => $val){
  18. $res[$key] = (array)$val;
  19. }
  20. return $res;
  21. });
  22. QueryBuilder::macro('cates',function($index){
  23. $res = $this->lists();
  24. $result = [];
  25. foreach ($res as $key => $value) {
  26. $result[$value[$index]] = $value;
  27. }
  28. return $result;
  29. });
  30. // 分页
  31. QueryBuilder::macro('pages',function($pageSize){
  32. $results = $this->paginate($pageSize);
  33. $_items = $results->items();
  34. $results->lists = [];
  35. foreach ($_items as $key => $value) {
  36. $results->lists[] = (array)$value;
  37. }
  38. return $results;
  39. });
  40. }
  41. }

再去config文件夹的APP文件里Providers注册扩展类

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议