skylence/filament-context-sidebar 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

skylence/filament-context-sidebar

最新稳定版本:v1.3.0

Composer 安装命令:

composer require skylence/filament-context-sidebar

包简介

Contextual sidebar navigation for Filament resource pages.

README 文档

README

run-tests

Contextual sidebar navigation for Filament resource pages. Compatible with Filament 4.

Installation

composer require skylence/filament-context-sidebar

Register the plugin in your Panel provider:

use Skylence\FilamentContextSidebar\FilamentContextSidebarPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            FilamentContextSidebarPlugin::make(),
        ]);
}

Optionally publish config and views:

php artisan vendor:publish --tag="filament-context-sidebar-config"
php artisan vendor:publish --tag="filament-context-sidebar-views"

Usage with Resource Pages

  1. Define pages in your resource:
use Filament\Resources\Resource;

class UserResource extends Resource
{
    public static function getPages(): array
    {
        return [
            'index' => Pages\ListUsers::route('/'),
            'edit' => Pages\EditUser::route('/{record}/edit'),
            'view' => Pages\ViewUser::route('/{record}/view'),
            'settings' => Pages\UserSettings::route('/{record}/settings'),
        ];
    }
}
  1. Add the sidebar method to your resource:
use Illuminate\Database\Eloquent\Model;
use Skylence\FilamentContextSidebar\ContextSidebar;
use Skylence\FilamentContextSidebar\ContextNavigationItem;

class UserResource extends Resource
{
    public static function sidebar(Model $record): ContextSidebar
    {
        return ContextSidebar::make()
            ->title($record->name)
            ->description($record->email)
            ->navigationItems([
                ContextNavigationItem::make('View')
                    ->icon('heroicon-o-eye')
                    ->url(fn () => static::getUrl('view', ['record' => $record])),
                ContextNavigationItem::make('Edit')
                    ->icon('heroicon-o-pencil')
                    ->url(fn () => static::getUrl('edit', ['record' => $record])),
                ContextNavigationItem::make('Settings')
                    ->icon('heroicon-o-cog-6-tooth')
                    ->url(fn () => static::getUrl('settings', ['record' => $record])),
            ]);
    }
}
  1. Use the HasContextSidebar trait on your pages:
use Filament\Resources\Pages\ViewRecord;
use Skylence\FilamentContextSidebar\Concerns\HasContextSidebar;

class ViewUser extends ViewRecord
{
    use HasContextSidebar;

    protected static string $resource = UserResource::class;
}

Usage with Pages

use Filament\Pages\Page;
use Skylence\FilamentContextSidebar\Concerns\HasContextSidebar;
use Skylence\FilamentContextSidebar\ContextSidebar;
use Skylence\FilamentContextSidebar\ContextNavigationItem;

class Settings extends Page
{
    use HasContextSidebar;

    public static function sidebar(): ContextSidebar
    {
        return ContextSidebar::make()
            ->title('Settings')
            ->navigationItems([
                ContextNavigationItem::make('General')
                    ->icon('heroicon-o-cog-6-tooth')
                    ->url(GeneralSettings::getUrl()),
                ContextNavigationItem::make('Security')
                    ->icon('heroicon-o-shield-check')
                    ->url(SecuritySettings::getUrl()),
            ]);
    }
}

Options

Layout

ContextSidebar::make()
    ->sidebarNavigation()  // Default - sidebar on the left
    ->topbarNavigation()   // Navigation above content

Navigation Item Options

ContextNavigationItem::make('Label')
    ->icon('heroicon-o-home')
    ->url('/path')
    ->badge('New')
    ->badgeColor('success')
    ->group('Group Name')
    ->sort(1)
    ->visible(fn () => auth()->user()->can('view'))
    ->isActiveWhen(fn () => request()->routeIs('*settings*'))
    ->translateLabel()

Title and Description

ContextSidebar::make()
    ->title('User Settings')
    ->description('user@example.com')
    ->descriptionCopyable()

Configuration

The config file allows you to set the sidebar width at different breakpoints:

// config/filament-context-sidebar.php
return [
    'sidebar_width' => [
        'sm' => 12,  // Full width on small screens
        'md' => 3,
        'lg' => 3,
        'xl' => 3,
        '2xl' => 3,
    ],
];

License

MIT

skylence/filament-context-sidebar 适用场景与选型建议

skylence/filament-context-sidebar 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.33k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 skylence/filament-context-sidebar 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 skylence/filament-context-sidebar 我们能提供哪些服务?
定制开发 / 二次开发

基于 skylence/filament-context-sidebar 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4.33k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 19
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-12