vicenterusso/laravel-table-structure

This is my package TableStructure

v0.0.1 2021-04-20 11:59 UTC

This package is auto-updated.

Last update: 2024-04-20 22:31:51 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status

This package helps you to get information about your table fields adding only a trait to your model. You can also optionally cache the results.

Installation

You can install the package via composer:

composer require vicenterusso/laravel_table_structure

You can publish the config file with:

php artisan vendor:publish --provider="VRusso\TableStructure\TableStructureServiceProvider" --tag="laravel_table_structure-config"

This is the contents of the published config file:

return [

    /*
    |--------------------------------------------------------------------------
    | Enable Cache
    |--------------------------------------------------------------------------
    |
    | Enable or disable usage of cache for Schema queries.
    |
    */
    'use_cache' => false,

    /*
    |--------------------------------------------------------------------------
    | Cache Prefix
    |--------------------------------------------------------------------------
    |
    | Custom prefix for cache keys. Avoid empty values
    |
    */
    'cache_prefix' => env('TABLE_STRUCT_PREFIX', 'TABLE_STRUCT'),

];

Usage

Insert the following trait to any model, and you can retrieve all info about the table fields

# Add trait to model
use \VRusso\TableStructure\Traits\FieldsInfo;

# Call it anywhere
User::hasField('username'); 
//true/false

User::getAllFields();
//['username', 'password', ...]

User::getAllFieldsWithTypes();
//[
//    [
//    'field' => 'username',
//    'type' => 'string'
//    ],
//    (...)
//]

User::getAllFieldsWithTypeOf('integer');
//['id', ...]

Credits

License

The MIT License (MIT). Please see License File for more information.