Custom Column Filament

#Model: OrderItem.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class OrderItem extends Model
{
    use HasFactory;

    protected $fillable = [
        'order_id', 'package_id', 'weight', 'unit_price'
    ];
}


#Model: Order.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;

class Order extends Model
{
    use HasFactory;

    protected $fillable = [
        'customer_id', 'code', 'status', 'payment', 'notes'
    ];

    public function customer(): BelongsTo
    {
        return $this->belongsTo(Customer::class);
    }

    public function package(): BelongsTo
    {
        return $this->belongsTo(Package::class);
    }

    public function items(): HasMany
    {
        return $this->hasMany(OrderItem::class);
    }
}


#File: OrderResource.php
use Filament\Tables\Table;
use App\Models\OrderItem;

public function table(Table $table): Table
{
    return $table
        ->columns([
            TextColumn::make('total_price')
            ->getStateUsing(fn (OrderItem $record) => $record->weight . $record->unit_price),
        ]);
}


How to display total price from order_item table? so weight
  • unit_price
Was this page helpful?