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

Modern Cloud DataOps Platforms for Reliable Data Pipelines

Introduction Modern organizations depend heavily on data. Every department, from finance and sales to healthcare, manufacturing, marketing, and customer support, needs reliable data to make better decisions….

Read More

Advanced DataOps Monitoring Tools for Enterprises: A Comprehensive Implementation Guide

Introduction Enterprise data environments are becoming more complex as organizations depend on cloud platforms, data lakes, data warehouses, real-time pipelines, analytics tools, and automated workflows. When one…

Read More

The Ultimate Share Market for Beginners Guide to Smart Returns

Entering the world of equity investing can feel like stepping into a foreign country where everyone speaks a different language. The flashing tickers, fast-moving financial news charts,…

Read More

Evaluating SEO Reporting Software: Must-Have Features for Modern Enterprise

Introduction Modern marketing teams, digital agencies, and e-commerce brands juggle multiple disjointed tools to manage their online footprint. Hopping between single-purpose tools for keyword tracking, asset storage,…

Read More

Platform Engineering and GitOps: Enterprise Guide to Modern Delivery

Introduction DevOps has evolved from a niche engineering practice into a boardroom priority that directly impacts customer experience, revenue, and competitiveness. Yet many enterprises still struggle to…

Read More

Platform Engineering vs DevOps: The New Cloud Architecture Shift.

Introduction Modern software engineering moves at breakneck speeds. Organizations must deploy features rapidly while maintaining total system availability. Transitioning away from legacy architectures toward modern cloud infrastructure…

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