App\Models\User and the users table. Use your own resource model and table if the signature belongs elsewhere.
By the end, an empty signature will fail validation, a drawn signature will save as SVG text, and the drawing will return when you edit the record.
Complete Installation first. The default signature mode needs no Spatie integration, file disk, queue worker or managed field group.
Build the workflow
1
Add the text column
Create a migration in your development application:Use this body in the generated migration. Keep its generated filename:Run your migration:This also runs other pending migrations registered in your application, including package migrations. Review Database setup before deployment.
Migration
2
Allow the attribute on your model
Add Retain the attributes your model already uses. This mode stores a string, so do not add an
signature to the model’s existing fillable list:app/Models/User.php
array cast to signature.3
Add SignatureField to the resource
Import the field and append it to your resource’s existing schema:If your resource delegates its form to a generated schema class, append the field in that class instead. The required field name is
Resource form
signature in both cases because it matches the model attribute.4
Save and reopen a record
Use the resource’s normal create and edit actions. Complete its other required fields before testing the signature.
Why these settings?
The field validates its signature representation; it does not establish a person’s identity or replace your application’s permissions and approval rules.
Read the saved value
After saving,$user->signature is SVG text, not a storage path or a JSON document. Use the SignatureField guide before switching to a media-backed storage mode or presenting the result outside the form.
If the drawing appears in the form but does not persist, check the column name, model assignment policy and save path using Saving & validation.
Use your own save action
A custom Livewire page should initialize the form withfill() and save the validated value returned by getState(). Do not write raw public form state directly to your model. The custom save example shows the complete pattern.
Configure the form
Choose sizes, variants and optional features.
Explore SignatureField
Choose drawing controls and other storage modes.