How to Add Custom Attribute in Laravel Model?

Introduction

In this blog article, we will explore the steps to add a custom attribute in the Laravel model and enhance the functionality of your application.

Why Custom Attributes?

Custom attributes allow you to add additional properties to your model that are not directly stored in the database. This can be useful when you want to manipulate data or perform calculations based on existing attributes.

Example 1: Define the Attribute

To add a custom attribute, we first need to define it in our model class. Open your model file and add the following code:

app/Models/User.php

<?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;

  

    ....

  

    /**

     * Determine  full name of user

     *

     * @return \Illuminate\Database\Eloquent\Casts\Attribute

     */

    public function getFullNameAttribute()

    {

        return $this->first_name . ' ' . $this->last_name;

    }

}

Access Attribute:

$full_name = User::find(1)->full_name;

Output:

Roshan Jha

Example 2: Laravel Model Define Attribute with Append Property

Using $appends property, you will get always “full_name” with user model object.

app/Models/User.php

<?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 accessors to append to the model's array form.

     *

     * @var array

     */

    protected $appends = ['full_name'];

  

    /**

     * Determine  full name of user

     *

     * @return \Illuminate\Database\Eloquent\Casts\Attribute

     */

    public function getFullNameAttribute()

    {

        return $this->first_name . ' ' . $this->last_name;

    }

}

Access Attribute:

Output:

Array

(

    [id] => 1

    [first_name] => Roshan

    [last_name] => Jha

    [email] => roshan.cotocus@gmail.com

    [created_at] => 2023-09-21T10:50:11.000000Z

    [updated_at] => 2023-09-21T10:50:11.000000Z

    [full_name] => Roshan Jha

)

I hope it will help you ….!!!!

Related Posts

Exploring Financial Operations Workflows in Modern Cloud Environments

Introduction The Certified FinOps Professional is the definitive benchmark for experts looking to master the intersection of finance, engineering, and business. As organizations transition from traditional data…

Read More

Strategic Certified FinOps Engineer integrates governance with cloud operations

Introduction The shift to cloud computing has fundamentally altered how businesses manage infrastructure, but it has also introduced significant financial complexities that many engineering teams struggle to…

Read More

Certified FinOps Manager Knowledge for Cloud Financial Governance

Introduction The shift toward cloud-native infrastructure has brought undeniable speed, but it has also introduced significant financial complexity. The Certified FinOps Manager is a professional designation designed…

Read More

Smart Career Growth Through Certified FinOps Architect Learning Journey

Introduction The Certified FinOps Architect is a professional certification designed to help engineers, cloud professionals, and managers optimize cloud financial operations and cost efficiency. This guide is…

Read More

CDOM – Certified DataOps Manager Learning Path for Modern Data Professionals

Introduction The CDOM – Certified DataOps Manager is a professional designation designed to bridge the gap between data engineering and operational excellence. This guide is written for…

Read More

Professional development journey using CDOA – Certified DataOps Architect

Introduction The CDOA – Certified DataOps Architect is a professional designation designed to address the unique challenges of managing and scaling data delivery in cloud-native environments. This…

Read More
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x