mirror of
https://github.com/filamentphp/filament.git
synced 2026-08-31 01:14:50 +08:00
feature: resource based filters
This commit is contained in:
@@ -4,5 +4,5 @@ namespace Filament\Commands\Aliases;
|
||||
|
||||
class MakeFilterCommand extends \Filament\Commands\MakeFilterCommand
|
||||
{
|
||||
protected $signature = 'filament:filter {name}';
|
||||
protected $signature = 'filament:filter {name} {--R|resource=}';
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ class MakeFilterCommand extends Command
|
||||
|
||||
protected $description = 'Make a Filament filter class.';
|
||||
|
||||
protected $signature = 'make:filament-filter {name}';
|
||||
protected $signature = 'make:filament-filter {name} {--R|resource=}';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
@@ -20,12 +20,13 @@ class MakeFilterCommand extends Command
|
||||
->trim('\\')
|
||||
->trim(' ')
|
||||
->replace('/', '\\');
|
||||
|
||||
$filterClass = (string) Str::of($filter)->afterLast('\\');
|
||||
$filterNamespace = Str::of($filter)->contains('\\') ?
|
||||
(string) Str::of($filter)->beforeLast('\\') :
|
||||
'';
|
||||
|
||||
$resource = $this->option('resource');
|
||||
|
||||
$path = app_path(
|
||||
(string) Str::of($filter)
|
||||
->prepend('Filament\\Filters\\')
|
||||
@@ -37,11 +38,17 @@ class MakeFilterCommand extends Command
|
||||
$path,
|
||||
])) return;
|
||||
|
||||
$this->copyStubToApp('Filter', $path, [
|
||||
'class' => $filterClass,
|
||||
'name' => $filter,
|
||||
'namespace' => 'App\\Filament\\Filters' . ($filterNamespace !== '' ? "\\{$filterNamespace}" : ''),
|
||||
]);
|
||||
if ($resource === null) {
|
||||
$this->copyStubToApp('Filter', $path, [
|
||||
'class' => $filterClass,
|
||||
'namespace' => 'App\\Filament\\Filters',
|
||||
]);
|
||||
} else {
|
||||
$this->copyStubToApp('ResourceFilter', $path, [
|
||||
'class' => $filterClass,
|
||||
'namespace' => 'App\\Filament\\Filters',
|
||||
]);
|
||||
}
|
||||
|
||||
$this->info("Successfully created {$filter}!");
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace {{ namespace }};
|
||||
|
||||
use Filament\Resources\Tables\Filter;
|
||||
use Filament\Tables\Filter;
|
||||
|
||||
class {{ class }} extends Filter
|
||||
{
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace {{ namespace }};
|
||||
|
||||
use Filament\Resources\Tables\Filter;
|
||||
|
||||
class {{ class }} extends Filter
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
$this->name('{{ name }}');
|
||||
}
|
||||
|
||||
public function apply($query)
|
||||
{
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user