Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Link Picker

Filament Link Picker Laravel Package

codedor/filament-link-picker

A Filament form field that lets editors choose links without hand-typing URLs. It provides a searchable picker for internal pages, model records, and custom routes, with configurable sources and labels. Use it for navigation, buttons, and CTA fields to keep links consistent in Laravel admin panels.

View on GitHub
Deep Wiki
Context7

A link picker field for Filament

Frequently asked questions about Filament Link Picker
How do I install codedor/filament-link-picker in a Laravel app?
Run composer require codedor/filament-link-picker, then add the link picker field to a Filament resource form schema. You also need a column to hold the payload, typically a json or text column on the model's table. There is no service provider wiring, queue worker, or extra Node build step beyond Filament's existing asset pipeline. Confirm the package supports your Filament major version before installing.
Which Filament and Laravel versions does filament-link-picker support?
The release notes do not clearly state which Filament majors the current release targets, so check the composer.json constraints and the repository README before committing. This matters because Filament v4 introduced breaking changes to form-field APIs. Treat the supported Filament and PHP/Laravel matrix as the gating question for any upgrade planning and pin a version you have smoke tested.
What database column type should I use for the link picker value?
The field persists a serialized Link value object rather than a plain URL string, so a json column is the most natural fit, with text as a fallback. The payload carries the route name, route parameters, anchor, external URL, and target. Because it is a structured payload, you can render it consistently and change output later without rewriting stored data.
How do I render the stored link as a URL on the front end?
The package only handles authoring inside the Filament panel and does not touch your public request path or rendering pipeline. You need a small resolver, such as a helper method or Blade partial, that reads the stored payload and turns the route name plus parameters or the external URL into a usable href. Budget a short amount of extra work for that resolver on top of installing the field.
Can I limit which pages, models, or routes appear in the link picker?
Yes. Configurable sources and labels are a core feature: the field provides a searchable picker for internal pages, model records, and custom routes, and you decide which of those are offered. That keeps editors from picking irrelevant records and keeps link output consistent across navigation, buttons, and CTA fields.
Does v2.2.0 change target="_blank" behaviour for existing links?
Version 2.2.0 adds a defaultNewTab property to the Link value object and enables it by default for external links. Whether that is applied only at authoring time or also at render/resolve time determines whether existing records silently start opening in new tabs, so audit rows containing external links after upgrading. Also confirm that target="_blank" is emitted together with rel="noopener noreferrer", since that affects security and accessibility.
The anchor or fragment bug was fixed in PR #34. Do I need a migration?
The fix addresses anchor tags not showing up in the composed route, which suggests fragments were being dropped when building the URL. Check whether the change is purely render time or whether it also alters the persisted payload shape, because the latter would require a data check on existing rows. Also look for records where an editor manually appended a fragment to a URL string, since those could now end up duplicated.
Is filament-link-picker safe to use in production?
The integration risk is low: it is a Filament form field that persists a value object and does not sit in your public request path, so architectural coupling is limited. The dominant risk is bus factor, since this is a single-maintainer, low-traffic package coupled to Filament major versions. Pin the version, add a panel smoke test, and keep a simple fallback path such as a plain URL field in mind.
How do I upgrade filament-link-picker from 2.1 to 2.2 safely?
Pin ^2.2 in a branch and run your existing test suite plus a Filament panel smoke test before merging. Create a record on 2.1.0, load and re-save it on 2.2.0, and diff the persisted Link payload to confirm the JSON round-trips without losing or mutating fields. The change is additive, so a rollback should be safe provided the new property is ignored on downgrade, but verify deserialization of older payloads first.
What are the alternatives to using a link picker field in Filament?
Common alternatives are a plain Filament TextInput with URL validation, a Select populated from your own route list, or a custom repeater of label and URL pairs. Those are cheaper to set up but push URL typing and consistency back onto editors. This package is worth it when you want a searchable picker over internal pages, model records, and custom routes with a structured payload you control.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections