Search by

brianbrian666 / field-note

xiaoqqqqqq

a laravel database file note

Package info

github.com/brianbrian666/fieldnote

Homepage

pkg:composer/brianbrian666/field-note

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.2 2026-10-10 13:21 UTC

This package is auto-updated.

Last update: 2026-10-10 13:22:52 UTC


README

一个基于laravel,方便数据库字段类型说明的拓展

当前版本支持 Laravel 10、11、12、13,要求 PHP 8.1 或更高版本(Laravel 13 本身要求 PHP 8.3 或更高版本)。

用法

使用composer导入包。

composer require brianbrian666/field-note

服务提供商通过 Laravel Package Discovery 自动注册。

'providers' => [
    // ...
    FileNote\NoteServiceProvider::class,
];

发布迁移。

php artisan vendor:publish --provider="FileNote\NoteServiceProvider"

创建表字段说明表。

php artisan migrate

在model使用use引用NoteTrait,可添加 $note_fields 为默认预加载的类型说明的字段。

<?php

namespace App\Models;

use FileNote\NoteTrait;
use Illuminate\Database\Eloquent\Model;

class Member extends Model
{
    use NoteTrait;
    protected $note_fields = ["type"];
}

使用 note() ,传参只会预加载参数里面包含的字段说明,不传参自动预加载 model 里面 $note_fields 的字段说明。

<?php

namespace App\Http\Controllers;

use App\Models\Member;


class HomeController extends Controller
{
    public function index(){

      	//不传参自动预加载 model 里面 $note_fields 的字段说明
        $member = Member::note()->first();
        //单个字段
        $member = Member::note('type')->first();
      	//多个字段
        $member = Member::note('type','level')->first();
        $member = Member::note(['type','level'])->first();
    }
}

可以通过 FIELD_NOTE_SUFFIX 环境变量配置说明关系的后缀,默认为 Note,type 字段对应 typeNote。旧拼写 FILED_NOTE_SUFFIX 仍作为回退配置支持。

$member->typeNote->note; 

$member->levelNote->note; 

获取 model 所有的字段说明。

$member->getAllNote();

获取字段的所有说明。

$member->getNoteByField('type');

获取字段的某个值对应说明。

$member->getNote('type','1');

检查字段某个值是否有对应说明,可用在表单验证。

$member->hasNote('type','1');