Link fieldtype allows multiple assets per drag and drop
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 35/100
Research direction
Reproduce the issue in a fresh Statamic installation by adding a link fieldtype to a blueprint and dropping multiple images into its upload area. Compare its behavior and save-time validation with an asset fieldtype configured with max_items set to 1. Done means the link field handles multiple dropped assets consistently with the asset fieldtype; the issue does not specify which behavior should be preferred.
Written by the indexing model from the issue text.
Description
Bug description
When adding multiple assets per drag and drop to a link field, it keeps all three instead of just one. After saving there's only one left. The asset fieldtype (with max_items set to 1) also allows that, but throws a validaton error on save, so editors have a little more control over which assets they need to delete.
There are kind of two minor bugs in this issue: The behaviour of being able to upload multiple assets into the asset fields and the different behaviour of validation of the asset fieldtype component and the link asset component. Both are confusing for editors, but I think having the same validation with both components would already help a lot. I can open another issue if that's better.
Here's a screen recording of the behaviour of the link asset component:
https://github.com/user-attachments/assets/a736b359-f369-428d-97eb-c0261dc3f8b2
How to reproduce
- Set up a fresh Statamic
- Add a link fieldtype to any blueprint
- Drag and drop multiple images into the upload area
Logs
Environment
Environment
Application Name: Statamic
Laravel Version: 12.21.0
PHP Version: 8.3.13
Composer Version: 2.8.4
Environment: local
Debug Mode: ENABLED
URL: testsystem-2025-08.test
Maintenance Mode: OFF
Timezone: UTC
Locale: en
Cache
Config: NOT CACHED
Events: NOT CACHED
Routes: NOT CACHED
Views: CACHED
Drivers
Broadcasting: log
Cache: file
Database: sqlite
Logs: stack / single
Mail: log
Queue: sync
Session: file
Storage
public/storage: NOT LINKED
Statamic
Addons: 0
Sites: 1
Stache Watcher: Enabled (auto)
Static Caching: Disabled
Version: 5.63.0 PRO
Installation
Fresh statamic/statamic site via CLI
Additional details
No response
- Dominant language
- PHP
- Stars
- 4.9k
- Forks
- 647
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 103
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from statamic/cms
-
preferences
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
There's a default crop when cropping imagesPossibly taken A pull request linked to this issue is open or already merged. Openassets
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
statamic/cms#15567 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
accessibility
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
antlers
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
WordPress/hosting-handbook#506 ·
Maintainers usually reply within 2 days
-
Installing a plugin with composer_packages installs dev dependencies and breaks the autoloader (Error 500)Possibly taken @Boy132 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
nginx: static-file locations drop the security headers, and the dotfile deny is matched after themOpenbug Low Security
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
backdrop-contrib/commerce#60 ·