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.
composer require pdmfc/nova-inline-text
vendor/pdmfc/nova-inline-text/README.mdsrc/…) to confirm the namespace and optionsvendor/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.
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.
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.storage/logs/laravel.log will show the exception if the request 500s.php artisan nova:publish and check public/vendor/pdmfc/….rules() fast (no DB lookups inside custom rules) since editors may trigger many small saves.component, resolve, or fill rather than editing vendor files, so upgrades don't overwrite your changes.composer.json (e.g. "pdmfc/nova-inline-text": "^1.0") — with a low-maintenance package, floating constraints can surprise you.Text input with an inline save endpoint — a day of work for a much smaller dependency surface.How can I help you explore Laravel packages today?