Skip to content

Commit

Permalink
Update ShortUrlClick.php
Browse files Browse the repository at this point in the history
  • Loading branch information
yordadev committed Aug 6, 2024
1 parent 2d6d47f commit e6b5d6d
Showing 1 changed file with 16 additions and 25 deletions.
41 changes: 16 additions & 25 deletions src/Models/ShortUrlClick.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,33 +68,24 @@ public function newEloquentBuilder($query): ClickQueryBuilder
return new ClickQueryBuilder($query);
}

public function scopeSearch($query, $keyword, $shortUrlId = null)
{
if ($shortUrlId) {
$query->where('short_url_id', $shortUrlId);
}

$query->whereIn('location_id', function ($query) use ($keyword) {
$query->from('short_url_locations');
$query->where('countryName', 'like', '%'.$keyword.'%');
$query->orWhere('countryCode', 'like', '%'.$keyword.'%');
$query->orWhere('regionName', 'like', '%'.$keyword.'%');
$query->orWhere('regionCode', 'like', '%'.$keyword.'%');
$query->orWhere('cityName', 'like', '%'.$keyword.'%');
$query->orWhere('zipCode', 'like', '%'.$keyword.'%');
$query->orWhere('postalCode', 'like', '%'.$keyword.'%');
$query->orWhere('timezone', 'like', '%'.$keyword.'%');
$query->orWhere('metroCode', 'like', '%'.$keyword.'%');
$query->orWhere('isoCode', 'like', '%'.$keyword.'%');
$query->orWhere('countryCode', 'like', '%'.$keyword.'%');
$query->orWhere('ip', 'like', '%'.$keyword.'%');
$query->select('id');
public function scopeSearch($query, $keyword) {
$query->whereHas('location', function ($q) use ($keyword) {
$q->where('countryName', 'like', '%'.$keyword.'%')
->orWhere('countryCode', 'like', '%'.$keyword.'%')
->orWhere('regionName', 'like', '%'.$keyword.'%')
->orWhere('regionCode', 'like', '%'.$keyword.'%')
->orWhere('cityName', 'like', '%'.$keyword.'%')
->orWhere('zipCode', 'like', '%'.$keyword.'%')
->orWhere('postalCode', 'like', '%'.$keyword.'%')
->orWhere('timezone', 'like', '%'.$keyword.'%')
->orWhere('metroCode', 'like', '%'.$keyword.'%')
->orWhere('isoCode', 'like', '%'.$keyword.'%')
->orWhere('ip', 'like', '%'.$keyword.'%');
});

$query->orWhereIn('outcome_id', function ($query) use ($keyword) {
$query->from('short_url_outcomes');
$query->where('alias', 'like', '%'.$keyword.'%');
$query->select('id');
// Eager load the 'outcomes' relationship
$query->orWhereHas('outcome', function ($q) use ($keyword) {
$q->where('alias', 'like', '%'.$keyword.'%');
});

return $query;
Expand Down

0 comments on commit e6b5d6d

Please sign in to comment.