BuilderProvider.php 818 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Providers\Macros;
  3. use Illuminate\Database\Eloquent\Builder;
  4. use Illuminate\Support\ServiceProvider;
  5. class BuilderProvider extends ServiceProvider
  6. {
  7. /**
  8. * Register services.
  9. */
  10. public function register(): void
  11. {
  12. //
  13. }
  14. /**
  15. * Bootstrap services.
  16. */
  17. public function boot(): void
  18. {
  19. /**
  20. * Case sensitive search
  21. */
  22. Builder::macro('whereLike', function (string $attribute, string $searchTerm) {
  23. return $this->orWhere($attribute, 'LIKE', $searchTerm);
  24. });
  25. /**
  26. * Case in-sensitive search
  27. */
  28. Builder::macro('whereILike', function (string $attribute, string $searchTerm) {
  29. return $this->orWhere($attribute, 'ILIKE', $searchTerm);
  30. });
  31. }
  32. }