1. Go to this page and download the library: Download ritechoice23/taggable library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Ritechoice23\Taggable\Traits\HasTags;
class Post extends Model
{
use HasTags;
}
$post = Post::find(1);
// Attach tags (accepts strings, IDs, or Tag models)
$post->tag('laravel');
$post->tag(['php', 'programming']);
// Detach tags
$post->untag('laravel');
$post->untag(['php', 'programming']);
// Detach all tags
$post->untagAll();
// Replace all existing tags (retag)
$post->retag(['laravel', 'php']);
// Check if model has a specific tag
if ($post->hasTag('laravel')) {
// ...
}
// Check if model has any of the given tags
if ($post->hasAnyTag(['laravel', 'php'])) {
// ...
}
// Check if model has all of the given tags
if ($post->hasAllTags(['laravel', 'php'])) {
// ...
}
// Get posts with a specific tag
$laravelPosts = Post::withTag('laravel')->get();
// Get posts with any of the given tags
$phpPosts = Post::withAnyTag(['laravel', 'php'])->get();
// Get posts with all of the given tags
$taggedPosts = Post::withAllTags(['laravel', 'php'])->get();
use Ritechoice23\Taggable\Models\Tag;
// Create a tag
$tag = Tag::create([
'name' => 'Laravel',
'meta' => [
'color' => '#FF2D20',
'description' => 'A PHP framework for web artisans',
'icon' => 'laravel-icon',
],
]);
// Or set meta values individually
$tag->setMeta('color', '#FF2D20');
$tag->setMeta('description', 'A PHP framework for web artisans');
// Get meta values
$color = $tag->getMeta('color');
$description = $tag->getMeta('description', 'No description');
// Check if meta key exists
if ($tag->hasMeta('color')) {
// ...
}
// Remove a meta key
$tag->removeMeta('icon');
// Get popular tags (ordered by usage count)
$popularTags = Tag::wherePopular(10)->get();
// Get trending tags (ordered by trending score)
$trendingTags = Tag::whereTrending(10)->get();
// Search tags by name
$searchResults = Tag::whereName('laravel')->get();
// Find tags by slug
$tag = Tag::whereSlug('laravel')->first();
// Get recently active tags
$activeTags = Tag::whereRecentlyActive(7)->get(); // Active in last 7 days
// Get tags with high growth
$growingTags = Tag::whereHighGrowth(7)->get(); // Growing in last 7 days
// Calculate trending scores
Tag::calculateAllTrendingScores();
// Or calculate for a specific tag
$tag->calculateTrendingScore();
// Get tag activity summary
$summary = $tag->getActivitySummary();
// Returns: total_count, trending_score, daily_activity, weekly_activity,
// monthly_activity, weekly_growth_rate, last_activity
// Manual count management (usually handled automatically)
$tag->incrementCount(); // Increment usage count
$tag->decrementCount(); // Decrement usage count
$tag->updateCount(); // Recalculate count from actual usage
// Get activity metrics
$recentActivity = $tag->getRecentActivityCount(7); // Count in last 7 days
$growthRate = $tag->getGrowthRate(7); // Growth percentage