Friday, April 26, 2024
HomePHPGetting details about all of the fashions in your Laravel app

Getting details about all of the fashions in your Laravel app


I am proud to announce that our group has launched a brand new small package deal: spatie/laravel-model-info. Let’s check out what this package deal can do.

Utilizing laravel-model-info

This package deal makes it simple to find out your mannequin courses’ attributes and relations.

use SpatieModelInfoModelInfo;

$modelInfo = ModelInfo::forModel(YourModel::class);

// returns the filename that comprises your mannequin
$modelInfo->fileName; 

// returns the title of the desk your fashions are saved in
$modelInfo->tableName; 

// returns a set of `Attribute` objects
$modelInfo->attributes; 

// returns a set of `Relation` objects
$modelInfo->relations; 

This is how one can get details about the attributes:

// returns the title of the primary attribute
$modelInfo->attributes->first()->title; 

// returns the kind of the primary attribute (string, integer, ...)
$modelInfo->attributes->first()->sort; 

This is how one can get details about the relations

// returns the title of the primary relation, e.g. `writer`
$modelInfo->relations->first()->title;

// returns the kind of the
// first relation, eg. `BelongsTo`
$modelInfo->relations->first()->sort;

// returns the associated mannequin of the
// first relation, eg. `AppModelsUser`
$modelInfo->relations->first()->associated; 

Moreover, the package deal may also uncover all of the fashions in your utility.

use SpatieModelInfoModelFinder;

// returns a `IlluminateSupportCollection` containing all
// the category names of all of your fashions.
$fashions = ModelFinder::all(); 

This is a screenshot of the package deal in motion on the code base of freek.dev

screenshot

After we scroll down, we are able to see the attributes of the Put up mannequin.

screenshot

In closing

This package deal will probably be handy whenever you’re constructing tooling round Laravel that should know details about how the fashions seem like. We will probably be utilizing laravel-model-info ourselves below the hood in our laravel-data, typescript transformer, and upcoming php-type-graph packages.

This is not the primary package deal that our group has constructed. On our firm web site, take a look at all our open supply packages in this lengthy record. If you wish to help us, take into account selecting up any of our paid merchandise.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments