Viewing file: AppServiceProvider.php (1.94 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Providers;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Pagination\Paginator; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Validator; use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { }
/** * Bootstrap any application services. * * @return void */ public function boot() { Paginator::useBootstrap();
if (! app()->runningInConsole()) { // Macros Builder::macro('whereLike', function ($attributes, string $searchTerm) { $this->where(function (Builder $query) use ($attributes, $searchTerm) { foreach (Arr::wrap($attributes) as $attribute) { $query->when( str_contains($attribute, '.'), function (Builder $query) use ($attribute, $searchTerm) { [$relationName, $relationAttribute] = explode('.', $attribute);
$query->orWhereHas($relationName, function (Builder $query) use ($relationAttribute, $searchTerm) { $query->where($relationAttribute, 'LIKE', "%{$searchTerm}%"); }); }, function (Builder $query) use ($attribute, $searchTerm) { $query->orWhere($attribute, 'LIKE', "%{$searchTerm}%"); } ); } });
return $this; });
//Add this custom validation rule. Validator::extend('alpha_spaces', function ($attribute, $value) { return preg_match('/^[\pL\s]+$/u', $value); }); } } }
|