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. zvizvi/user-fields

ActiveLibrary

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

This is my package user-fields

0.0.4(3mo ago)133.6k↓26.3%2[2 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 1mo 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 1mo ago

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

[![banner](https://private-user-images.githubusercontent.com/4354421/535612540-8fa0dd08-a7be-4442-8b31-5b51a4a7e0e7.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTYxMjU0MC04ZmEwZGQwOC1hN2JlLTQ0NDItOGIzMS01YjUxYTRhN2UwZTcuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzBiNDE5NmUzOTI5ZDkwYjM2NDJmODc1NGMwOTdjYWYyNDI3ZTA5MjRhN2MxNGUxODUwZWJjNzVmZGViNzhjZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ._VdNEgw5uKfqvcG7NnjMug67ObW-NfIsxw3sI6nuqSQ)](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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MjkxMS0yODExNjg5YS00YmEyLTRmMDktYjMwZi1jYWQzNTE4OTBlZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjU0ZGRmNTUxMzdhYTEyZGEzNThkNDI5YWZhNzQ4ODRjNTM2Mjc3NTI2ZDRhODYwYzY5ODU4Njk0ZGYwMjcxNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.A_Bd5KD3FZ1DEN9yo7sTbsGz7euOFG1_oqBQgCr8GuI)](https://private-user-images.githubusercontent.com/4354421/535362911-2811689a-4ba2-4f09-b30f-cad351890ef2.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MjkxMS0yODExNjg5YS00YmEyLTRmMDktYjMwZi1jYWQzNTE4OTBlZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjU0ZGRmNTUxMzdhYTEyZGEzNThkNDI5YWZhNzQ4ODRjNTM2Mjc3NTI2ZDRhODYwYzY5ODU4Njk0ZGYwMjcxNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.A_Bd5KD3FZ1DEN9yo7sTbsGz7euOFG1_oqBQgCr8GuI)### 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MzE2OC0zOWU3ZTUwZS1mMDRkLTQ5OGQtOTkxYi0xNzJkMzI4OWQyYzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzY5NzRmMDZkYzA1ZDI0MjgzNGQxOGFjZmIyMjI4YTNjNWQ4OTM3YjU5MjkxZjZlNWI1MzQ1YWM1N2Y3YTVjYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.QQkmLyf_VAe3jOzvFRvGF1wEwwiPYLTjgvkFQ4RCYXE)](https://private-user-images.githubusercontent.com/4354421/535363168-39e7e50e-f04d-498d-991b-172d3289d2c0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2MzE2OC0zOWU3ZTUwZS1mMDRkLTQ5OGQtOTkxYi0xNzJkMzI4OWQyYzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzY5NzRmMDZkYzA1ZDI0MjgzNGQxOGFjZmIyMjI4YTNjNWQ4OTM3YjU5MjkxZjZlNWI1MzQ1YWM1N2Y3YTVjYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.QQkmLyf_VAe3jOzvFRvGF1wEwwiPYLTjgvkFQ4RCYXE)### 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjAyOC05NzNiNTBkMS04NDY5LTQzMjUtYjFiOC1iOWZiZGIyYWMxM2EucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzViZjNjMTFhZjYxOWQyN2FiNDU4NWE5YmVmYjZjMjU2Y2UxZDQ4ZTY3YjEyMTc5NzU4YTVhZWIwNjY4YTY0MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.HhLrQfjSSKpH2ly-uNuEmQ5G7ZSlaWUbpkToxOohK9k)](https://private-user-images.githubusercontent.com/4354421/535366028-973b50d1-8469-4325-b1b8-b9fbdb2ac13a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjAyOC05NzNiNTBkMS04NDY5LTQzMjUtYjFiOC1iOWZiZGIyYWMxM2EucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzViZjNjMTFhZjYxOWQyN2FiNDU4NWE5YmVmYjZjMjU2Y2UxZDQ4ZTY3YjEyMTc5NzU4YTVhZWIwNjY4YTY0MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.HhLrQfjSSKpH2ly-uNuEmQ5G7ZSlaWUbpkToxOohK9k)[![image](https://private-user-images.githubusercontent.com/4354421/535366214-7375a233-71cb-48fa-bbcf-5d1927afcc0f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjIxNC03Mzc1YTIzMy03MWNiLTQ4ZmEtYmJjZi01ZDE5MjdhZmNjMGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTNkZWVjMWRmOTBkYmJmM2FkYTYzNDVmNTdjYmU1MjMwMjBlMTNkMzEzMWFlZjZlNzk1N2MzMTEwMWRiMTI3ZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.kKki3_u49bUGao6ypN0B7XdFdSON1Acvu8RZ7WoUUII)](https://private-user-images.githubusercontent.com/4354421/535366214-7375a233-71cb-48fa-bbcf-5d1927afcc0f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjIxNC03Mzc1YTIzMy03MWNiLTQ4ZmEtYmJjZi01ZDE5MjdhZmNjMGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTNkZWVjMWRmOTBkYmJmM2FkYTYzNDVmNTdjYmU1MjMwMjBlMTNkMzEzMWFlZjZlNzk1N2MzMTEwMWRiMTI3ZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.kKki3_u49bUGao6ypN0B7XdFdSON1Acvu8RZ7WoUUII)### 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjgxOC0wNmRiNWIzNi04NGJhLTQ3NjEtOGJlNy0wMDI5ODUyMWMxOTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MjM3OTRhNTZjYjRlM2VkODc1YjJjNWUwMjI0MTJiYmE1MjJlZDdlYmY5NWQzZjE3NmYzMDJkMTZjYzZlNDBiOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.LPF9kXIdcfAn5qAIYRvhJ2LEibuzM_5nhivrxdteDng)](https://private-user-images.githubusercontent.com/4354421/535366818-06db5b36-84ba-4761-8be7-00298521c196.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NjgxOC0wNmRiNWIzNi04NGJhLTQ3NjEtOGJlNy0wMDI5ODUyMWMxOTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MjM3OTRhNTZjYjRlM2VkODc1YjJjNWUwMjI0MTJiYmE1MjJlZDdlYmY5NWQzZjE3NmYzMDJkMTZjYzZlNDBiOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.LPF9kXIdcfAn5qAIYRvhJ2LEibuzM_5nhivrxdteDng)### 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NTU5OC1mMTQyZGY0OC03Nzg5LTQwMzYtYjFiZi00ZDA2Nzg2ZmU5ZDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDVlZDM5ODhhNzVmMmFhZmEwMjQxYTYyM2U0YmM3MTU3MGM0YWJjZGMwMjM2NGQ5OGQ5YWNjYWRhYzk5MjA2YyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.yVbn8aNMPUn1YP81ALBdakyEp4B2VLM3Ud4VqMfZ268)](https://private-user-images.githubusercontent.com/4354421/535365598-f142df48-7789-4036-b1bf-4d06786fe9d5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2NTU5OC1mMTQyZGY0OC03Nzg5LTQwMzYtYjFiZi00ZDA2Nzg2ZmU5ZDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDVlZDM5ODhhNzVmMmFhZmEwMjQxYTYyM2U0YmM3MTU3MGM0YWJjZGMwMjM2NGQ5OGQ5YWNjYWRhYzk5MjA2YyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.yVbn8aNMPUn1YP81ALBdakyEp4B2VLM3Ud4VqMfZ268)### 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2ODU0MC0zZjU3NzQ4MC02MGM0LTQwZjYtOGM5NS01MjFiNjNlY2UwNmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDY1ZjBhMDEzYTAyZGYyYzJjNTE3MmE0MmUzYjFmNzljZmZkMTQ5ZTM3YzNjMjk4ZTBhNWUxMDM4NDQ5ZTI4NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.dF2Xs9e6pPr1qs_cPJ6L5ihlSsI4JMZecNh5mEmE0jo)](https://private-user-images.githubusercontent.com/4354421/535368540-3f577480-60c4-40f6-8c95-521b63ece06a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyODMyNjQsIm5iZiI6MTc3NTI4Mjk2NCwicGF0aCI6Ii80MzU0NDIxLzUzNTM2ODU0MC0zZjU3NzQ4MC02MGM0LTQwZjYtOGM5NS01MjFiNjNlY2UwNmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDRUMDYwOTI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDY1ZjBhMDEzYTAyZGYyYzJjNTE3MmE0MmUzYjFmNzljZmZkMTQ5ZTM3YzNjMjk4ZTBhNWUxMDM4NDQ5ZTI4NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.dF2Xs9e6pPr1qs_cPJ6L5ihlSsI4JMZecNh5mEmE0jo)### 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 92% of packages

Maintenance82

Actively maintained with recent releases

Popularity32

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity41

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

111d ago

PHP version history (2 changes)0.0.1PHP ^8.1

0.0.2PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/4cf30ec634479d6db393e6e41682df54cf1e5756a4cafc171ef126ad8034f0d6?d=identicon)[zvizvi](/maintainers/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

[joaopaulolndev/filament-edit-profile

Filament package to edit profile

250258.1k34](/packages/joaopaulolndev-filament-edit-profile)[guava/filament-knowledge-base

A filament plugin that adds a knowledge base and help to your filament panel(s).

206120.5k1](/packages/guava-filament-knowledge-base)[marcelweidum/filament-expiration-notice

Customize the livewire expiration notice

9169.0k4](/packages/marcelweidum-filament-expiration-notice)[guava/filament-modal-relation-managers

Allows you to embed relation managers inside filament modals.

7565.0k4](/packages/guava-filament-modal-relation-managers)[hydrat/filament-table-layout-toggle

Filament plugin adding a toggle button to tables, allowing user to switch between Grid and Table layouts.

6292.3k1](/packages/hydrat-filament-table-layout-toggle)[jacobtims/filament-logger

Activity logger for filament

1721.0k4](/packages/jacobtims-filament-logger)

PHPackages © 2026

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