bhhaskin/laravel-tickets
最新稳定版本:0.2.0
Composer 安装命令:
composer require bhhaskin/laravel-tickets
包简介
Ticketing utilities for Laravel applications.
README 文档
README
bhhaskin/laravel-tickets provides a reusable ticketing system for Laravel 10/11 applications with optional Markdown rendering, polymorphic attachments, audit logging, and workspace scoping.
Installation
composer require bhhaskin/laravel-tickets:^0.1.0
Publish config and migrations if you need to customise them:
php artisan vendor:publish --tag=laravel-tickets-config php artisan vendor:publish --tag=laravel-tickets-migrations
Run the package migrations:
php artisan migrate
Features
- SQLite-friendly migrations and Testbench-ready factories.
- Markdown rendering for ticket bodies and replies (via
Str::markdown). - Optional audit trail if
bhhaskin/laravel-auditis installed. - Polymorphic associations (
ticketables) to link any Eloquent model to a ticket. - Optional workspace integration when
bhhaskin/laravel-workspacesis present.
Ticket Model
use Bhhaskin\Tickets\Models\Ticket; $ticket = Ticket::create([ 'user_id' => $user->id, 'subject' => 'DNS outage', 'body' => "We cannot reach example.com from the LA office.", 'priority' => Ticket::PRIORITY_HIGH, ]); // Attach arbitrary models $ticket->attachModel($site); // Optional: assign a workspace if available if (class_exists(\Bhhaskin\LaravelWorkspaces\Support\WorkspaceConfig::class)) { $ticket->assignWorkspace($workspace); } // Replies render markdown automatically $ticket->replies()->create([ 'user_id' => $user->id, 'body' => "Here is **more** context", ]);
Scopes
// Tickets for a specific user $mine = Ticket::forUser($user)->latest()->get(); // Tickets for a workspace (works when laravel-workspaces is installed) $workspaceTickets = Ticket::forWorkspace($workspace)->with(['owner','replies','associations.ticketable'])->paginate();
Optional Packages
- Install
bhhaskin/laravel-auditto automatically log ticket and reply lifecycle events. - Install
bhhaskin/laravel-workspacesto scope tickets by workspace (addsworkspace()relation and resource payload).
Both integrations are auto-detected—no additional configuration is required once the packages are installed.
Testing
composer test
The suite uses Orchestra Testbench with in-memory SQLite and includes stubs for optional integrations so tests pass without extra dependencies.
统计信息
- 总下载量: 33
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-03