Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Activity Log Laravel Package

noxoua/filament-activity-log

View on GitHub
Deep Wiki
Context7

title: Logger Example permalink: /get-started/logger-example parent: Get Started nav_order: 3.3

Logger Example


Here's a simple example of a Logger for a Product model:

use App\Filament\Resources\ProductResource;
use App\Models\Product;
use Illuminate\Contracts\Support\Htmlable;
use Noxo\FilamentActivityLog\Loggers\Logger;
use Noxo\FilamentActivityLog\ResourceLogger\Field;
use Noxo\FilamentActivityLog\ResourceLogger\RelationManager;
use Noxo\FilamentActivityLog\ResourceLogger\ResourceLogger;
use Spatie\Activitylog\Models\Activity;

class ProductLogger extends Logger
{
    // public static bool $disabled = true;

    public static ?string $model = Product::class;

    public static function getLabel(): string | Htmlable | null
    {
        // return __('Product');
        return ProductResource::getModelLabel();
    }

    public function getSubjectRoute(Activity $activity): ?string
    {
        return ProductResource::getUrl('edit', ['record' => $activity->subject_id]);
    }

    public function getRelationManagerRoute(Activity $activity): ?string
    {
        return $this->getSubjectRoute($activity).'?activeRelationManager=0';
    }

    public static function resource(ResourceLogger $logger): ResourceLogger
    {
        return $logger
            // Resource Fields
            ->fields([
                Field::make('title')
                    ->label(__('Title')),

                Field::make('categories.name')
                    ->label(__('Categories'))
                    ->hasMany('categories')
                    ->badge(),

                Field::make('media')
                    ->label(__('Images'))
                    ->media(gallery: true),

                Field::make('price')
                    ->label(__('Price'))
                    ->money('EUR'),

                Field::make('status')
                    ->label(__('Status'))
                    ->enum(ProductStatus::class),

                Field::make('active')
                    ->label(__('Visible'))
                    ->boolean(),
            ])
            // Relation Managers
            ->relationManagers([
                RelationManager::make('accessories')
                    ->label('Accessory')
                    ->fields([
                        Field::make('name')
                            ->label(__('Label')),

                        Field::make('price')
                            ->label(__('Price'))
                            ->money('EUR'),
                    ]),
            ]);
    }
}
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky