ModelSearchWay.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Traits;
  3. trait ModelSearchWay
  4. {
  5. private function isSearchLike($str)
  6. {
  7. if (substr($str, 0, 1) == "%" || substr($str, strlen($str) - 1, 1) == "%") {
  8. return true;
  9. }
  10. return false;
  11. }
  12. private function searchWay($query, $param, $column)
  13. {
  14. if ($this->isSearchLike($param)) {
  15. $query->where($column, 'like', $param);
  16. } else {
  17. mb_regex_encoding('utf-8');
  18. $query->whereIn($column, array_filter(preg_split('/[,, ]+/u', $param)));
  19. }
  20. return $query;
  21. }
  22. private function sqlSearchWay($sql,$condition,$column)
  23. {
  24. if ($condition){
  25. if (strpos($condition, ',') || strpos($condition, ',') || strpos($condition, ' ')) {
  26. $arr = array_filter(preg_split('/[,, ]+/is', $condition));
  27. $sql .= ' and '.$column.' in (';
  28. foreach ($arr as $index => $arr){
  29. if ($index != 0)$sql .= ',';
  30. $sql .= "'".$arr."'";
  31. }
  32. $sql .= ') ';
  33. unset($condition);
  34. } else {
  35. $sql .= " and $column like '".$condition."' ";
  36. }
  37. }
  38. return $sql;
  39. }
  40. }