PHPackages                             zvizvi/user-fields - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zvizvi/user-fields

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

zvizvi/user-fields
==================

This is my package user-fields

0.0.4(5mo ago)1515.4k↑16.5%2[3 issues](https://github.com/zvizvi/filament-user-fields/issues)[2 PRs](https://github.com/zvizvi/filament-user-fields/pulls)MITPHPPHP ^8.2CI passing

Since Nov 6Pushed 2mo agoCompare

[ Source](https://github.com/zvizvi/filament-user-fields)[ Packagist](https://packagist.org/packages/zvizvi/user-fields)[ Docs](https://github.com/zvizvi/filament-user-fields)[ GitHub Sponsors](https://github.com/zvizvi)[ RSS](/packages/zvizvi-user-fields/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependencies (7)Versions (7)Used By (0)

[![banner](https://private-user-images.githubusercontent.com/4354421/535612540-8fa0dd08-a7be-4442-8b31-5b51a4a7e0e7.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTYxMjU0MC04ZmEwZGQwOC1hN2JlLTQ0NDItOGIzMS01YjUxYTRhN2UwZTcuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzU5NGJhOWNhNTQyYmU0MDFjMjIxYTM5YmRiMTEzMWJhYzczMDRkMTg0NDNmMmIwZjEyYzE5NDM1NmJkZTU4ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGanBlZyJ9.CIW0Cs9uPQLn6yBj9COQZtKWAuEIxOtojrXsMCrF1ZQ)](https://github.com/zvizvi/filament-relation-manager-repeater)Filament User Fields
====================

[](#filament-user-fields)

A comprehensive Filament v4/v5 plugin that provides ready-to-use user field components with avatar display for forms, tables, infolists, and filters. This package simplifies the display of user information across your Filament application by providing pre-configured components that automatically render user avatars and names in a consistent, professional manner.

---

Features
--------

[](#features)

- **Pre-styled Components**: Beautiful user display with avatars and names out of the box
- **Multiple Display Types**: Support for tables, infolists, forms, and filters
- **Stacked Avatars**: Display multiple users in a compact, stacked format
- **Easy Integration**: Drop-in replacement for standard Filament components
- **Consistent UI**: Unified user representation across your entire application
- **Zero Configuration**: Works immediately with Filament's default user avatar system

---

Installation
------------

[](#installation)

Install the package via composer:

```
composer require zvizvi/user-fields
```

That's it! The package will automatically register itself with Laravel and Filament.

---

Available Components
--------------------

[](#available-components)

This package provides six main components, each designed for specific use cases within Filament:

[![image](https://private-user-images.githubusercontent.com/4354421/535362911-2811689a-4ba2-4f09-b30f-cad351890ef2.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MjkxMS0yODExNjg5YS00YmEyLTRmMDktYjMwZi1jYWQzNTE4OTBlZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzFiNTQ1M2RjNmQ3Y2MwNDNjOWJkNmRkMDZlMGJhOTM3YjViN2RiZjNkMjEwMWRmYzc0NDgxZTI0Y2EwYTYzMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.Zu6AFM6gefV1SDyC94enaqtzVqiWUU6HJzf97HvcE0U)](https://private-user-images.githubusercontent.com/4354421/535362911-2811689a-4ba2-4f09-b30f-cad351890ef2.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MjkxMS0yODExNjg5YS00YmEyLTRmMDktYjMwZi1jYWQzNTE4OTBlZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzFiNTQ1M2RjNmQ3Y2MwNDNjOWJkNmRkMDZlMGJhOTM3YjViN2RiZjNkMjEwMWRmYzc0NDgxZTI0Y2EwYTYzMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.Zu6AFM6gefV1SDyC94enaqtzVqiWUU6HJzf97HvcE0U)### 1. UserColumn (Tables)

[](#1-usercolumn-tables)

**Purpose**: Display user information in table columns with avatar and name.

**Use Case**: Lists, resource tables, relation managers

**Example**:

```
use Zvizvi\UserFields\Components\UserColumn;

public static function table(Table $table): Table
{
    return $table
        ->columns([
            UserColumn::make('author')
                ->label('Author'),

            UserColumn::make('assigned_to')
                ->label('Assigned To')
                ->wrapped(), // Display in column layout
        ]);
}
```

**Features**:

- Displays user avatar (circular) with name
- Optional `wrapped()` method for vertical layout
- Supports single users or collections
- Automatic line breaks for multiple users

---

[![image](https://private-user-images.githubusercontent.com/4354421/535363168-39e7e50e-f04d-498d-991b-172d3289d2c0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MzE2OC0zOWU3ZTUwZS1mMDRkLTQ5OGQtOTkxYi0xNzJkMzI4OWQyYzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZTljYWVjYzAyYzFhN2Q2ODQ0NTIyMDVlZTE3NDgxMWVlMjhkZWQxMTFjNzFhOWFlNjNlYTc2ZGM5MDJjOWQzMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.WqAXIT3xXhfax2HTaKSrWZ_3Q8fmeNSTzb8X2mXrSh4)](https://private-user-images.githubusercontent.com/4354421/535363168-39e7e50e-f04d-498d-991b-172d3289d2c0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MzE2OC0zOWU3ZTUwZS1mMDRkLTQ5OGQtOTkxYi0xNzJkMzI4OWQyYzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZTljYWVjYzAyYzFhN2Q2ODQ0NTIyMDVlZTE3NDgxMWVlMjhkZWQxMTFjNzFhOWFlNjNlYTc2ZGM5MDJjOWQzMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.WqAXIT3xXhfax2HTaKSrWZ_3Q8fmeNSTzb8X2mXrSh4)### 2. UserEntry (Infolists)

[](#2-userentry-infolists)

**Purpose**: Display user information in infolists/view pages.

**Use Case**: Resource view pages, modal details, info panels

**Example**:

```
use Zvizvi\UserFields\Components\UserEntry;

public static function infolist(Infolist $infolist): Infolist
{
    return $infolist
        ->schema([
            UserEntry::make('created_by')
                ->label('Created By'),

            UserEntry::make('reviewers')
                ->label('Reviewers')
                ->wrapped(), // Display in column layout
        ]);
}
```

**Features**:

- Read-only display of user information
- Consistent styling with UserColumn
- Supports single or multiple users
- Optional wrapped layout

---

[![image](https://private-user-images.githubusercontent.com/4354421/535366028-973b50d1-8469-4325-b1b8-b9fbdb2ac13a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjAyOC05NzNiNTBkMS04NDY5LTQzMjUtYjFiOC1iOWZiZGIyYWMxM2EucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzY4MGI2MmFmM2Y1ZjM3YmQ1ZjFlYTJiYWE3NTM2MmU1ZTUwOGFmNTc4NWNiOGM2MDhkODllYmNiYjk4MWY2MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.du6giVBN9hzxIKWFNy3b7H-PQ4NH5hAslhLk3RcP2Bk)](https://private-user-images.githubusercontent.com/4354421/535366028-973b50d1-8469-4325-b1b8-b9fbdb2ac13a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjAyOC05NzNiNTBkMS04NDY5LTQzMjUtYjFiOC1iOWZiZGIyYWMxM2EucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzY4MGI2MmFmM2Y1ZjM3YmQ1ZjFlYTJiYWE3NTM2MmU1ZTUwOGFmNTc4NWNiOGM2MDhkODllYmNiYjk4MWY2MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.du6giVBN9hzxIKWFNy3b7H-PQ4NH5hAslhLk3RcP2Bk)[![image](https://private-user-images.githubusercontent.com/4354421/535366214-7375a233-71cb-48fa-bbcf-5d1927afcc0f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjIxNC03Mzc1YTIzMy03MWNiLTQ4ZmEtYmJjZi01ZDE5MjdhZmNjMGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzQxODY5YmZkNTQwNmZlNTRmYjJjM2FiZmRkMjk4MjAxNGI5Y2YwNDgyNDhkOWZjMDg0OWNmOWNmODA5NzhlMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.XAqYAVJWOoTbtUJdtK4Sri6XsqGcijRNBNFvRZEx8WE)](https://private-user-images.githubusercontent.com/4354421/535366214-7375a233-71cb-48fa-bbcf-5d1927afcc0f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjIxNC03Mzc1YTIzMy03MWNiLTQ4ZmEtYmJjZi01ZDE5MjdhZmNjMGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzQxODY5YmZkNTQwNmZlNTRmYjJjM2FiZmRkMjk4MjAxNGI5Y2YwNDgyNDhkOWZjMDg0OWNmOWNmODA5NzhlMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.XAqYAVJWOoTbtUJdtK4Sri6XsqGcijRNBNFvRZEx8WE)### 3. UserSelect (Forms)

[](#3-userselect-forms)

**Purpose**: Select field for choosing users with rich display.

**Use Case**: Forms, create/edit pages, modals

**Example**:

```
use Zvizvi\UserFields\Components\UserSelect;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            UserSelect::make('user_id')
                ->label('Select User')
                ->relationship('user', 'name')
                ->searchable()
                ->preload(),

            UserSelect::make('team_members')
                ->label('Team Members')
                ->relationship('teamMembers', 'name')
                ->multiple()
                ->searchable(),
        ]);
}
```

**Features**:

- Rich dropdown with user avatars
- HTML rendering support for avatars
- Works with relationships
- Searchable and preloadable
- Supports multiple selection

---

[![image](https://private-user-images.githubusercontent.com/4354421/535366818-06db5b36-84ba-4761-8be7-00298521c196.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjgxOC0wNmRiNWIzNi04NGJhLTQ3NjEtOGJlNy0wMDI5ODUyMWMxOTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9M2ZiOTJkMjBjMTQ2MWY3NzNiYWY0ZDhjMDNlMmI2MzZlYThmYmQxZjQ2MzZiODMyY2Y1OTcyYTY1MjMyMWUyZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.IUwGjz5vIdpO7yAtYYoVwnhWXUDZkoApIY_XblpQHxY)](https://private-user-images.githubusercontent.com/4354421/535366818-06db5b36-84ba-4761-8be7-00298521c196.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjgxOC0wNmRiNWIzNi04NGJhLTQ3NjEtOGJlNy0wMDI5ODUyMWMxOTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9M2ZiOTJkMjBjMTQ2MWY3NzNiYWY0ZDhjMDNlMmI2MzZlYThmYmQxZjQ2MzZiODMyY2Y1OTcyYTY1MjMyMWUyZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.IUwGjz5vIdpO7yAtYYoVwnhWXUDZkoApIY_XblpQHxY)### 4. UserSelectFilter (Table Filters)

[](#4-userselectfilter-table-filters)

**Purpose**: Filter table data by user selection.

**Use Case**: Table filters and advanced filtering; only works with relationship-based filtering.

**Example**:

```
use Zvizvi\UserFields\Components\UserSelectFilter;

public static function table(Table $table): Table
{
    return $table
        ->filters([
            UserSelectFilter::make('author_id')
                ->label('Author')
                ->relationship('author', 'name')
                ->searchable()
                ->preload(),

            UserSelectFilter::make('assigned_to')
                ->label('Assigned To')
                ->relationship('assignedUser', 'name')
                ->multiple(),
        ]);
}
```

**Features**:

- Filter results by user
- Rich display with avatars in dropdown
- Supports single or multiple selection
- Searchable options

---

[![image](https://private-user-images.githubusercontent.com/4354421/535365598-f142df48-7789-4036-b1bf-4d06786fe9d5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NTU5OC1mMTQyZGY0OC03Nzg5LTQwMzYtYjFiZi00ZDA2Nzg2ZmU5ZDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjRlMGJhMDE3ZGM1NWU4YTc3NTgyZDFiMjVjNzA1MWIyMWJlNjRiMGMyYzZlMDY4NzE0ZWJiZmExODYxMDQ4ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.NTPM2GDi6uYMwTD49TqsQ3F2lgcon-zMVpcRLGPaZsg)](https://private-user-images.githubusercontent.com/4354421/535365598-f142df48-7789-4036-b1bf-4d06786fe9d5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NTU5OC1mMTQyZGY0OC03Nzg5LTQwMzYtYjFiZi00ZDA2Nzg2ZmU5ZDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjRlMGJhMDE3ZGM1NWU4YTc3NTgyZDFiMjVjNzA1MWIyMWJlNjRiMGMyYzZlMDY4NzE0ZWJiZmExODYxMDQ4ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.NTPM2GDi6uYMwTD49TqsQ3F2lgcon-zMVpcRLGPaZsg)### 5. UserStackedColumn (Tables - Multiple Users)

[](#5-userstackedcolumn-tables---multiple-users)

**Purpose**: Display multiple users as stacked circular avatars in tables.

**Use Case**: Team members, collaborators, participants in compact space

**Example**:

```
use Zvizvi\UserFields\Components\UserStackedColumn;

public static function table(Table $table): Table
{
    return $table
        ->columns([
            UserStackedColumn::make('team_members')
                ->label('Team')
                ->ring(2) // Ring width around avatars
                ->imageHeight(32), // Avatar size

            UserStackedColumn::make('collaborators')
                ->label('Collaborators')
                ->tooltip(fn ($state) => $state?->name), // Hover tooltip
        ]);
}
```

**Features**:

- Compact stacked avatar display
- Circular avatars with ring borders
- Hover tooltips showing user names
- Customizable size and ring width
- Ideal for displaying multiple users in limited space

---

[![image](https://private-user-images.githubusercontent.com/4354421/535368540-3f577480-60c4-40f6-8c95-521b63ece06a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2ODU0MC0zZjU3NzQ4MC02MGM0LTQwZjYtOGM5NS01MjFiNjNlY2UwNmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjA4MmJiMWJkNjhmZjlmYWJlODlkODM2OTY0ZWQzN2FmMGE1MTk1ZWI2NGFkNDdmNmI4NTM1ZmFmNmNmZDk4YiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.2ExR_xFXZoL9n7O8BhmcFgbGTi_JFijpqutX-dMKVnk)](https://private-user-images.githubusercontent.com/4354421/535368540-3f577480-60c4-40f6-8c95-521b63ece06a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5NTQyODUsIm5iZiI6MTc4Mjk1Mzk4NSwicGF0aCI6Ii80MzU0NDIxLzUzNTM2ODU0MC0zZjU3NzQ4MC02MGM0LTQwZjYtOGM5NS01MjFiNjNlY2UwNmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDJUMDA1OTQ1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjA4MmJiMWJkNjhmZjlmYWJlODlkODM2OTY0ZWQzN2FmMGE1MTk1ZWI2NGFkNDdmNmI4NTM1ZmFmNmNmZDk4YiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.2ExR_xFXZoL9n7O8BhmcFgbGTi_JFijpqutX-dMKVnk)### 6. UserStackedEntry (Infolists - Multiple Users)

[](#6-userstackedentry-infolists---multiple-users)

**Purpose**: Display multiple users as stacked avatars in infolists.

**Use Case**: View pages showing team members, collaborators, participants

**Example**:

```
use Zvizvi\UserFields\Components\UserStackedEntry;

public static function infolist(Infolist $infolist): Infolist
{
    return $infolist
        ->schema([
            UserStackedEntry::make('project_members')
                ->label('Project Team')
                ->ring(2)
                ->imageHeight(32),

            UserStackedEntry::make('reviewers')
                ->label('Code Reviewers'),
        ]);
}
```

**Features**:

- Same styling as UserStackedColumn
- Read-only display
- Stacked circular avatars
- Tooltips on hover
- Perfect for displaying multiple users in view mode

---

Component Comparison
--------------------

[](#component-comparison)

ComponentContextDisplay TypeUser CountInteractive**UserColumn**TablesAvatar + NameSingle/MultipleRead-only**UserEntry**InfolistsAvatar + NameSingle/MultipleRead-only**UserSelect**FormsDropdown with AvatarSingle/MultipleInteractive**UserSelectFilter**FiltersDropdown with AvatarSingle/MultipleInteractive**UserStackedColumn**TablesStacked AvatarsMultipleRead-only**UserStackedEntry**InfolistsStacked AvatarsMultipleRead-only---

Advanced Usage
--------------

[](#advanced-usage)

### Customizing Avatar Display

[](#customizing-avatar-display)

All components use Filament's built-in avatar system. To customize avatars globally:

```
// In your User model
public function getFilamentAvatarUrl(): ?string
{
    return $this->avatar_url
        ? Storage::url($this->avatar_url)
        : "https://ui-avatars.com/api/?name={$this->name}&color=7F9CF5&background=EBF4FF";
}
```

### Working with Relationships

[](#working-with-relationships)

```
UserColumn::make('author')
    ->relationship('author', 'name') // Define relationship
    ->label('Written By'),

UserSelect::make('reviewer_id')
    ->relationship('reviewer', 'name')
    ->searchable(['name', 'email']) // Search multiple fields
    ->preload(),
```

### Handling Multiple Users

[](#handling-multiple-users)

```
// In your model
public function teamMembers()
{
    return $this->belongsToMany(User::class, 'team_user');
}

// In your resource
UserColumn::make('teamMembers')
    ->label('Team')
    ->wrapped(), // Display in vertical layout

// Or use stacked for compact display
UserStackedColumn::make('teamMembers')
    ->label('Team'),
```

### Custom Styling

[](#custom-styling)

```
UserColumn::make('author')
    ->extraAttributes([
        'class' => 'custom-user-display'
    ]),

UserStackedColumn::make('team')
    ->ring(3) // Thicker ring
    ->imageHeight(40), // Larger avatars
```

---

Real-World Examples
-------------------

[](#real-world-examples)

### Blog Post Resource

[](#blog-post-resource)

```
use Zvizvi\UserFields\Components\{UserColumn, UserSelect, UserSelectFilter};

class PostResource extends Resource
{
    public static function form(Form $form): Form
    {
        return $form->schema([
            TextInput::make('title')->required(),
            UserSelect::make('author_id')
                ->label('Author')
                ->relationship('author', 'name')
                ->default(auth()->id())
                ->required(),
        ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('title'),
                UserColumn::make('author')->label('Author'),
                TextColumn::make('created_at')->dateTime(),
            ])
            ->filters([
                UserSelectFilter::make('author_id')
                    ->label('Filter by Author')
                    ->relationship('author', 'name'),
            ]);
    }
}
```

### Project Management Resource

[](#project-management-resource)

```
use Zvizvi\UserFields\Components\{UserStackedColumn, UserSelect, UserEntry};

class ProjectResource extends Resource
{
    public static function form(Form $form): Form
    {
        return $form->schema([
            TextInput::make('name')->required(),
            UserSelect::make('owner_id')
                ->label('Project Owner')
                ->relationship('owner', 'name')
                ->required(),
            UserSelect::make('team_members')
                ->label('Team Members')
                ->relationship('teamMembers', 'name')
                ->multiple()
                ->searchable(),
        ]);
    }

    public static function table(Table $table): Table
    {
        return $table->columns([
            TextColumn::make('name'),
            UserColumn::make('owner')->label('Owner'),
            UserStackedColumn::make('teamMembers')
                ->label('Team')
                ->ring(2),
        ]);
    }

    public static function infolist(Infolist $infolist): Infolist
    {
        return $infolist->schema([
            TextEntry::make('name'),
            UserEntry::make('owner')->label('Project Owner'),
            UserStackedEntry::make('teamMembers')
                ->label('Team Members'),
        ]);
    }
}
```

---

Requirements
------------

[](#requirements)

- PHP 8.2 or higher
- Laravel 10.x or 11.x
- Filament 4.x or 5.x

---

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

---

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

---

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

---

Credits
-------

[](#credits)

- [zvizvi](https://github.com/zvizvi)
- [All Contributors](../../contributors)

---

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance76

Regular maintenance activity

Popularity36

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~27 days

Total

4

Last Release

156d ago

PHP version history (2 changes)0.0.1PHP ^8.1

0.0.2PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4354421?v=4)[zvizvi](/maintainers/zvizvi)[@zvizvi](https://github.com/zvizvi)

---

Top Contributors

[![zvizvi](https://avatars.githubusercontent.com/u/4354421?v=4)](https://github.com/zvizvi "zvizvi (27 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (4 commits)")[![lmalma](https://avatars.githubusercontent.com/u/13244167?v=4)](https://github.com/lmalma "lmalma (2 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

laravelzvizviuser-fields

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/zvizvi-user-fields/health.svg)

```
[![Health](https://phpackages.com/badges/zvizvi-user-fields/health.svg)](https://phpackages.com/packages/zvizvi-user-fields)
```

###  Alternatives

[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

122177.8k1](/packages/stephenjude-filament-feature-flags)[ysfkaya/filament-phone-input

A phone input component for Laravel Filament

3161.3M25](/packages/ysfkaya-filament-phone-input)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[marcelweidum/filament-expiration-notice

Customize the livewire expiration notice

94135.4k5](/packages/marcelweidum-filament-expiration-notice)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17760.2k3](/packages/stephenjude-filament-jetstream)[stephenjude/filament-debugger

About

104162.2k2](/packages/stephenjude-filament-debugger)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
