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

Nova Inline Text Laravel Package

pdmfc/nova-inline-text

pdmfc/nova-inline-text provides an inline text field for Laravel Nova, letting users edit text values directly from resource index and detail screens without opening the full edit view. It simplifies quick updates and reduces clicks.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Install the package:
    composer require pdmfc/nova-inline-text
    
  2. Check the package README first — it is a small Nova field package, so most configuration lives in the field class rather than a published config file. Look for:
    • vendor/pdmfc/nova-inline-text/README.md
    • the field class itself (src/…) to confirm the namespace and options
    • any service provider / published assets under vendor/
  3. Drop the field into a resource:
    use Pdmfc\NovaInlineText\NovaInlineText;
    
    public function fields(NovaRequest $request)
    {
        return [
            NovaInlineText::make('Name'),
        ];
    }
    

First use case: letting editors rename or retitle records (project names, invoice references, titles, SKU labels) directly from the resource index — click the cell, edit, and save without opening the full edit form.

Implementation Patterns

Basic inline editing on the index

NovaInlineText::make('Title')
    ->rules('required', 'max:120')
    ->sortable(),

Use it for short, safe-to-edit strings that don't require related model changes to be valid.

Pair with an authorization gate Inline edits are only as safe as your Nova policies. Before exposing a field inline, confirm the model's update policy allows the current user:

NovaInlineText::make('Title')
    ->readonly(fn () => ! $request->user()->can('update', $this->resource)),

If the package doesn't support ->readonly() with a closure on older Nova versions, wrap it in your own field or use ->canSee().

Validation lives on the field Because the inline editor posts a partial update, keep field-level rules() narrow (single-field validation) so unrelated model rules don't block a quick rename. Delegate cross-field validation to a FormRequest or a dedicated endpoint.

Use it alongside a regular Text field If the inline component behaves unexpectedly on the detail/edit form, keep Text::make('Title') on forms and hide the inline field there:

NovaInlineText::make('Title')->onlyOnIndex(),
Text::make('Title')->hideFromIndex(),

This gives you the best of both: fast index editing, full-form editing when detail validation matters.

Side effects belong in observers, not the field Any time the inline save fires (audit log, slug regeneration, cache invalidation), put the logic in an Eloquent observer or updating event — do not assume the field's save path is stable across Nova upgrades.

Integration with toolbars/actions Combine with Nova actions or filters for batch workflows, but reserve inline editing for corrections, not bulk mutations.

Gotchas and Tips

  • Nova version compatibility is the main risk. The last release is May 2020, which predates Nova 4. Test on your Nova major version first; if the compiled component fails to render, you'll likely need to rebuild the package's JS against Nova's asset tooling or fork it.
  • The field must resolve during the update request. If an inline save silently fails, check whether you've hidden the field from forms (onlyOnIndex() / exceptOnForms()) — the package typically re-resolves the field when handling the save. If it doesn't, keep the field visible on the request that performs the update.
  • Watch the network tab first when debugging. Inline save failures are usually visible as a 4xx on the update request (403 = policy, 422 = rule failure, 419 = CSRF). storage/logs/laravel.log will show the exception if the request 500s.
  • Race conditions. Two editors renaming the same record simultaneously will produce last-write-wins. Don't build workflows that depend on optimistic concurrency unless you add your own version column.
  • Asset publishing. If the styling looks unstyled/orphaned after a Nova or package upgrade, re-run php artisan nova:publish and check public/vendor/pdmfc/….
  • Rules fire on every inline save. Keep rules() fast (no DB lookups inside custom rules) since editors may trigger many small saves.
  • Extension points. The field class is small; subclass it and override component, resolve, or fill rather than editing vendor files, so upgrades don't overwrite your changes.
  • Pin the version in composer.json (e.g. "pdmfc/nova-inline-text": "^1.0") — with a low-maintenance package, floating constraints can surprise you.
  • Fallback plan. If the package goes unmaintained on your Nova version, the two viable replacements are Nova's built-in editable fields (Nova 4+) or a small custom field wrapping a Text input with an inline save endpoint — a day of work for a much smaller dependency surface.
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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource