Database.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Http\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. /**
  5. * 数据库操作模型类
  6. */
  7. class Database extends Model
  8. {
  9. /**
  10. * 循环获取or查询
  11. *
  12. * @access public
  13. * @param mixed $database 数据库
  14. * @param mixed $orWhere 或查询 [[['batch_id', '191'], ['batch_id', '186']],[['id', '55'], ['id', '59']]];
  15. * @return String
  16. */
  17. public function whereOr($database, $orWhere=[])
  18. {
  19. $result = $database;
  20. // 循环获取or查询.
  21. foreach ($orWhere as $value) {
  22. $result = $result->where(
  23. function ($query) use ($value) {
  24. foreach ($value as $k => $v) {
  25. if ($k === 0) {
  26. $query = $query->where([$v[0] => $v[1]]);
  27. } else {
  28. $query = $query->orWhere([$v[0] => $v[1]]);
  29. }
  30. }
  31. }
  32. );
  33. }
  34. return $result;
  35. }//end whereOr()
  36. /**
  37. * 循环排序规则
  38. *
  39. * @access public
  40. * @param mixed $database 数据库
  41. * @param mixed $orderBy 排序字段 ['sort' => 'asc']
  42. * @return String
  43. */
  44. public function orderBy($database, $orderBy=[])
  45. {
  46. $result = $database;
  47. // 循环排序规则.
  48. foreach ($orderBy as $key => $value) {
  49. $result = $result->orderBy($key, $value);
  50. }
  51. return $result;
  52. }//end orderBy()
  53. }