If you have DB column which you want to be set only once and never updated again, you can set that restriction on Eloquent Model, with a mutator:
- In version 9 and above:
use Illuminate\Database\Eloquent\Casts\Attribute; class User extends Model{ protected function email(): Attribute { return Attribute::make( set: fn ($value, $attributes) => $attributes['email'] ?? $value, ); }}
- In version 9 and below:
class User extends Model{ public function setEmailAttribute($value) { if (isset($this->attributes['email']) && ! is_null($this->attributes['email'])) { return; } $this->attributes['email'] = $value; }}
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses on Laravel Daily
[NEW] Next.js Basics for Laravel Developers
11 lessons
58 min
Laravel 13 Starter Kit Teams and Customizations
10 lessons
33 min
[FREE] Laravel 13 for Beginners: 3 Demo Projects
5 lessons
29 min