mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
fix: Global search soft deleted models
This commit is contained in:
@@ -114,7 +114,7 @@ class ResourceClassGenerator extends ClassGenerator
|
||||
$this->addTableMethodToClass($class);
|
||||
$this->addGetRelationsMethodToClass($class);
|
||||
$this->addGetPagesMethodToClass($class);
|
||||
$this->addGetEloquentQueryMethodToClass($class);
|
||||
$this->addGetRecordRouteBindingEloquentQueryMethodToClass($class);
|
||||
}
|
||||
|
||||
protected function addModelPropertyToClass(ClassType $class): void
|
||||
@@ -328,28 +328,28 @@ class ResourceClassGenerator extends ClassGenerator
|
||||
|
||||
protected function configureGetPagesMethod(Method $method): void {}
|
||||
|
||||
protected function addGetEloquentQueryMethodToClass(ClassType $class): void
|
||||
protected function addGetRecordRouteBindingEloquentQueryMethodToClass(ClassType $class): void
|
||||
{
|
||||
if (! $this->isSoftDeletable()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$method = $class->addMethod('getEloquentQuery')
|
||||
$method = $class->addMethod('getRecordRouteBindingEloquentQuery')
|
||||
->setPublic()
|
||||
->setStatic()
|
||||
->setReturnType(Builder::class)
|
||||
->setBody(
|
||||
<<<PHP
|
||||
return parent::getEloquentQuery()
|
||||
return parent::getRecordRouteBindingEloquentQuery()
|
||||
->withoutGlobalScopes([
|
||||
{$this->simplifyFqn(SoftDeletingScope::class)}::class,
|
||||
]);
|
||||
PHP
|
||||
);
|
||||
$this->configureGetEloquentQueryMethod($method);
|
||||
$this->configureGetRecordRouteBindingEloquentQueryMethod($method);
|
||||
}
|
||||
|
||||
protected function configureGetEloquentQueryMethod(Method $method): void {}
|
||||
protected function configureGetRecordRouteBindingEloquentQueryMethod(Method $method): void {}
|
||||
|
||||
public function getFqn(): string
|
||||
{
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Filament\Resources\Resource\Concerns;
|
||||
use Closure;
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Panel;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\Stringable;
|
||||
@@ -25,9 +26,14 @@ trait HasRoutes
|
||||
*/
|
||||
protected static string | array $withoutRouteMiddleware = [];
|
||||
|
||||
public static function getRecordRouteBindingEloquentQuery(): Builder
|
||||
{
|
||||
return static::getEloquentQuery();
|
||||
}
|
||||
|
||||
public static function resolveRecordRouteBinding(int | string $key, ?Closure $modifyQuery = null): ?Model
|
||||
{
|
||||
$query = static::getEloquentQuery();
|
||||
$query = static::getRecordRouteBindingEloquentQuery();
|
||||
|
||||
if ($modifyQuery) {
|
||||
$query = $modifyQuery($query) ?? $query;
|
||||
|
||||
+2
-2
@@ -66,9 +66,9 @@ class PostResource extends Resource
|
||||
];
|
||||
}
|
||||
|
||||
public static function getEloquentQuery(): Builder
|
||||
public static function getRecordRouteBindingEloquentQuery(): Builder
|
||||
{
|
||||
return parent::getEloquentQuery()
|
||||
return parent::getRecordRouteBindingEloquentQuery()
|
||||
->withoutGlobalScopes([
|
||||
SoftDeletingScope::class,
|
||||
]);
|
||||
|
||||
+2
-2
@@ -48,9 +48,9 @@ class PostResource extends Resource
|
||||
];
|
||||
}
|
||||
|
||||
public static function getEloquentQuery(): Builder
|
||||
public static function getRecordRouteBindingEloquentQuery(): Builder
|
||||
{
|
||||
return parent::getEloquentQuery()
|
||||
return parent::getRecordRouteBindingEloquentQuery()
|
||||
->withoutGlobalScopes([
|
||||
SoftDeletingScope::class,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user