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

Advanced Certified MLOps Professional Program for Scalable AI Model Deployment Systems

Introduction The Certified MLOps Professional program from AIOpsSchool has emerged as a vital benchmark for engineers looking to bridge the gap between data science and production engineering….

Read More

Powerful Certified MLOps Engineer Program to Build Reliable ML Infrastructure

Introduction The integration of Machine Learning into production environments has created a significant gap between data science and traditional software engineering. The Certified MLOps Engineer program is…

Read More

Professional Skill Alignment Around MLOps Foundation Certification in Modern Workplaces

Introduction The MLOps Foundation Certification has emerged as a critical benchmark for professionals looking to bridge the gap between data science and production engineering. This guide is…

Read More

Certified AIOps Manager: Strategic Framework for Intelligent IT Operations

Introduction The Certified AIOps Manager program is a specialized training designed to help professionals lead the next wave of IT operations. This guide is for engineers and…

Read More

Advanced AIOps Architect Certification Roadmap for DevOps Engineers

Introduction The Certified AIOps Architect is a comprehensive professional program designed for engineers and architects who want to master the intersection of Artificial Intelligence and IT Operations….

Read More

Advanced Certified AIOps Professional Guide for Mastering AI Driven Operations Skills

Introduction Artificial Intelligence for IT Operations is the future of managing complex systems and large scale digital environments. The Certified AIOps Professional program is designed for those…

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