You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Filament如何根据认证用户ID获取专属表格数据

Filament PHP 表格仅展示当前登录用户数据的实现方法

方法一:在表格定义中直接过滤查询

你可以通过modifyQueryUsing方法给表格的查询添加筛选条件,只返回当前登录用户的数据:

public static function table(Table $table): Table
{
    return $table
        ->columns([
            Tables\Columns\TextColumn::make('user_id')
                ->searchable(),
            Tables\Columns\TextColumn::make('title')
                ->searchable(),
            Tables\Columns\TextColumn::make('slug')
                ->searchable(),
            Tables\Columns\TextColumn::make('status')
                ->searchable(),
        ])
        // 添加筛选条件,仅展示当前用户的数据
        ->modifyQueryUsing(fn ($query) => $query->where('user_id', auth()->id()))
        ->filters([
            //
        ])
        ->actions([
            Tables\Actions\EditAction::make(),
        ])
        ->bulkActions([
            Tables\Actions\BulkActionGroup::make([
                Tables\Actions\DeleteBulkAction::make(),
            ]),
        ])
        ->emptyStateActions([
            Tables\Actions\CreateAction::make(),
        ]);
}

方法二:重写Resource的全局查询方法(更推荐)

如果希望整个Resource的所有数据操作(包括表格、详情页、编辑页)都自动过滤当前用户的数据,可以在你的Resource类中重写getEloquentQuery方法:

public static function getEloquentQuery(): Builder
{
    return parent::getEloquentQuery()->where('user_id', auth()->id());
}

设置后,Filament会自动为该Resource下的所有查询加上用户ID筛选,无需在table方法中额外处理,安全性更高。

补充:创建记录时自动关联当前用户

为避免手动输入user_id,可在创建流程中自动赋值:

  1. 在CreateAction中隐藏字段并设置默认值:
->emptyStateActions([
    Tables\Actions\CreateAction::make()
        ->form([
            Forms\Components\TextInput::make('title')->required(),
            Forms\Components\TextInput::make('slug')->required(),
            // 隐藏user_id并自动赋值当前用户ID
            Forms\Components\Hidden::make('user_id')->default(fn () => auth()->id()),
        ]),
])
  1. 或者在模型中通过事件自动赋值(全局生效):
// 在对应模型类中
protected static function booted(): void
{
    static::creating(function ($model) {
        $model->user_id = auth()->id();
    });
}

内容的提问来源于stack exchange,提问作者khaled khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:47:05