Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

LuDataAccess.php 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace Luticate\Utils;
  3. abstract class LuDataAccess {
  4. public function __construct()
  5. {
  6. }
  7. /**
  8. * @var LuModel
  9. */
  10. protected $model = null;
  11. /**
  12. * @param $page int
  13. * @param $perPage int
  14. * @param $column string
  15. * @param $order string
  16. * @param $query string
  17. * @return LuModel[]
  18. */
  19. protected function search_($page, $perPage, $column, $order, $query)
  20. {
  21. return $this->model;
  22. }
  23. /**
  24. * @param $data LuModel[]
  25. * @return LuDbo[]
  26. */
  27. protected function arrayToDbo($data)
  28. {
  29. $tab = [];
  30. foreach ($data as $q) {
  31. if (!is_null($q)) {
  32. $tab[] = $q->toDbo();
  33. }
  34. }
  35. return $tab;
  36. }
  37. /**
  38. * @param $page int
  39. * @param $perPage int
  40. * @param $column string
  41. * @param $order string
  42. * @param $query string
  43. * @return LuDbo[]
  44. */
  45. public function search($page, $perPage, $column, $order, $query = null)
  46. {
  47. if (is_null($query))
  48. $data = $this->model;
  49. else
  50. $data = $this->search_($page, $perPage, $column, $order, $query);
  51. $data = $data->orderBy($column, $order)->take($perPage)->offset($page * $perPage)->get();
  52. $tab = $this->arrayToDbo($data);
  53. return $tab;
  54. }
  55. /**
  56. * @param $id int
  57. * @return LuModel
  58. */
  59. protected function getModelById($id)
  60. {
  61. return $this->model->where('id', '=', $id)->first();
  62. }
  63. /**
  64. * @param $id int
  65. * @return LuDbo|null
  66. */
  67. public function getById($id)
  68. {
  69. $data = $this->getModelById($id);
  70. if (is_null($data))
  71. return null;
  72. return $data->toDbo();
  73. }
  74. /**
  75. * @param $id int
  76. */
  77. public function deleteById($id)
  78. {
  79. $data = $this->getModelById($id);
  80. if (is_null($data))
  81. return;
  82. $data->delete();
  83. }
  84. /**
  85. * @param $data LuDbo
  86. * @return int
  87. */
  88. public function addId($data)
  89. {
  90. $data = $this->model->fromDBO($data);
  91. $data->save();
  92. return $data->id;
  93. }
  94. /**
  95. * @param $data LuDbo
  96. */
  97. public function add($data)
  98. {
  99. $data = $this->model->fromDBO($data);
  100. $data->save();
  101. }
  102. /**
  103. * @param $id int
  104. * @param $data LuDbo
  105. * @return LuDbo|null
  106. */
  107. public function editById($id, $data)
  108. {
  109. return $this->model->fromDBO($data, $this->getModelById($id))->save();
  110. }
  111. }