banulalakwindu/laravel-column-helpers 问题修复 & 功能扩展

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

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

banulalakwindu/laravel-column-helpers

最新稳定版本:1.0.1

Composer 安装命令:

composer require banulalakwindu/laravel-column-helpers

包简介

Laravel traits and migration macros for common model columns.

README 文档

README

A Laravel package providing useful traits and migration macros for common model columns.

Installation

composer require banulalakwindu/laravel-column-helpers

Features

Migration Macros

Active Column

Schema::table('posts', function (Blueprint $table) {
    $table->activeColumn(); // Adds is_active boolean column with default true
});

Featured Column

Schema::table('posts', function (Blueprint $table) {
    $table->featuredColumn(); // Adds is_featured boolean column with default false
});

Meta Columns

Schema::table('posts', function (Blueprint $table) {
    $table->metaColumns(); // Adds meta_title, meta_description, meta_keywords, meta_image
});

Slug Columns

Schema::table('posts', function (Blueprint $table) {
    $table->slugColumns(); // Adds name and slug columns
    $table->slugColumns('title'); // Adds title and slug columns
});

Sort Order Column

Schema::table('posts', function (Blueprint $table) {
    $table->sortOrderColumn(); // Adds sort_order integer column with default 0
});

Model Traits

HasActiveColumn

use BanulaLakwindu\ColumnHelpers\Traits\HasActiveColumn;

class Post extends Model
{
    use HasActiveColumn;
}

// Usage
$post->isActive();
$post->markActive();
$post->markInactive();
Post::active()->get(); // Scope

HasFeaturedColumn

use BanulaLakwindu\ColumnHelpers\Traits\HasFeaturedColumn;

class Post extends Model
{
    use HasFeaturedColumn;
}

// Usage
$post->isFeatured();
$post->markFeatured();
$post->markUnfeatured();
Post::featured()->get(); // Scope

HasMetaColumns

use BanulaLakwindu\ColumnHelpers\Traits\HasMetaColumns;

class Post extends Model
{
    use HasMetaColumns;
}

HasSlugColumns

use BanulaLakwindu\ColumnHelpers\Traits\HasSlugColumns;

class Post extends Model
{
    use HasSlugColumns;

    protected function slugSourceColumn(): string
    {
        return 'title';
    }

    protected function getSlugColumnCommentCacheDuration(): int
    {
        return 7 * 24 * 60 * 60; // 7 days in seconds
    }
}

Override Functions:

  • slugSourceColumn(): Required override - Specifies which column to use as the source for generating slugs. If not overridden, the trait will auto-detect the slug source column from database comments every time (caching is needed).

  • getSlugColumnCommentCacheDuration(): Optional override - Sets cache duration for slug source column detection. Default is 7 days. Only used when slugSourceColumn() is not overridden.

HasSortOrderColumn

use BanulaLakwindu\ColumnHelpers\Traits\HasSortOrderColumn;

class Post extends Model
{
    use HasSortOrderColumn;
}

// Usage
$post->getSortOrder();
$post->setSortOrder(5);
$post->moveBefore($otherPost);
$post->moveAfter($otherPost);
Post::orderBySortOrder()->get(); // Scope
Post::orderBySortOrderDesc()->get(); // Scope

Requirements

  • PHP 8.0+
  • Laravel 10.0+

License

MIT License

统计信息

  • 总下载量: 80
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-26