Hello Laravel Friends,
In this blog, we are learning how to add a custom attribute in the Laravel model. In this blog, we are going through the example of custom attributes.
Contents
When we need,
In all the above cases, we can use a custom attribute in Laravel.
Let’s take one example of it.
Here we have one fresh Laravel project. Also, we have a User model with first_name, last_name, email, and password. Here we need to display the user’s full name in our view. So need to create a custom attribute for it. We are creating the full_name attribute in the User model.
Now, your app/Models/User.php file looks like the below.
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; /** * The attributes that are mass assignable. * * @var array<int, string> */ protected $fillable = [ 'first_name', 'last_name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var array<int, string> */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array<string, string> */ protected $casts = [ 'email_verified_at' => 'datetime', ]; // your custom attribute public function getFullNameAttribute() { return $this->first_name . ' ' . $this->last_name; } }
To access your custom attribute using the model object.
return User::find(1)->full_name;
Output:
Magecomp Laravel
Suppose you need a full_name attribute with a User model object. You can achieve that using the $appends property of the model class. Please add the following code to your User model.
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { … /** * The accessors to append to the model's array form. * * @var array */ protected $appends = [ 'full_name' ]; public function getFullNameAttribute() { return $this->first_name . ' ' . $this->last_name; } }
Now access your custom attribute using the User model object.
return User::find(1);
Output:
{ first_name: 'Magecomp', Last_name: 'Laravel', email : 'johndoe@gmail.com', email_verified_at : null, created_at: '2023-02-15 06:10:20', updated_at: '2023-02-15 06:10:20', full_name: 'Magecomp Laravel' }
Hence, using the above method, you can easily Add a Custom Attribute in Laravel Model. For any doubts or queries, freely leave a comment, and I will be prompt to answer them. For any customization requirements of your Laravel project, Hire Laravel Developer. Share the tutorial with your other Laravel friends, and stay in touch with us to learn more about Laravel.
Happy Coding!
In modern web development, seamless navigation and state management are crucial for delivering a smooth…
Magento Open Source 2.4.8 beta version released on October 8, 2024. The latest release of…
Hello Magento Friends, Creating catalog price rules programmatically in Magento 2 can be a valuable…
As the world of eCommerce continues to thrive, Shopify has become one of the most…
Shopify Remix is an innovative framework that provides a streamlined experience for building fast, dynamic,…
Building a successful eCommerce store requires expertise, and for many businesses, Shopify has become the…