searchbox record support filter by ip

This commit is contained in:
xiaomlove
2022-09-20 19:39:10 +08:00
parent dd36d6a654
commit e94c7340e4
2 changed files with 13 additions and 2 deletions
@@ -15,6 +15,7 @@ use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use phpDocumentor\Reflection\DocBlock\Tags\See;
use PhpIP\IP;
class SeedBoxRecordResource extends Resource
{
@@ -60,7 +61,17 @@ class SeedBoxRecordResource extends Resource
Tables\Columns\TextColumn::make('bandwidth')->label(__('label.seed_box_record.bandwidth')),
Tables\Columns\TextColumn::make('ip')
->label(__('label.seed_box_record.ip'))
->searchable()
->searchable(true, function (Builder $query, $search) {
try {
$ip = IP::create($search);
$ipNumeric = $ip->numeric();
return $query->orWhere(function (Builder $query) use ($ipNumeric) {
return $query->where('ip_begin_numeric', '<=', $ipNumeric)->where('ip_end_numeric', '>=', $ipNumeric);
});
} catch (\Exception $exception) {
do_log("Invalid IP: $search, error: " . $exception->getMessage());
}
})
->formatStateUsing(fn ($record) => $record->ip ?: sprintf('%s ~ %s', $record->ip_begin, $record->ip_end)),
Tables\Columns\TextColumn::make('comment')->label(__('label.comment')),
Tables\Columns\BadgeColumn::make('status')
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.7.27');
defined('RELEASE_DATE') || define('RELEASE_DATE', '2022-09-19');
defined('RELEASE_DATE') || define('RELEASE_DATE', '2022-09-20');
defined('IN_TRACKER') || define('IN_TRACKER', false);
defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org");