+
Skip to content

pnlinh/php-eloquent-custom

 
 

Repository files navigation

Eloquent Extensions and Helpers

PHP CodeSniffer Release PHPv Downloads

Custom Extensions for Eloquent

See https://laravel.com/docs/eloquent

Laravel 5.x/6.x

Install the saritasa/eloquent-custom package:

$ composer require saritasa/eloquent-custom

Optionally (if you want to use default migrations): If you use Laravel 5.4 or less, or 5.5+ with package discovery disabled, add the PredefinedMigrationsServiceProvider service provider config/app.php:

'providers' => array(
    // ...
    Saritasa\Database\Eloquent\PredefinedMigrationsServiceProvider::class,
)

then you can execute command:

php artisan vendor:publish --provider=Saritasa\Database\Eloquent\PredefinedMigrationsServiceProvider --tag=migrations

Available classes

Entity

Extends Eloquent model, adds:

  • Ability to set default field values for newly created inheritors

Example:

class User extends Entity
{
    protected $defaults = [
        'role' => 'user'
    ]
}

now if you create new user it will have role 'user' by default, if you don't provide it explicitly:

$user = new User(['name' => 'John Doe']);
$this->assertEquals('user', $user->role); // true

$admin = new User['name' => 'Mary', 'role' => 'admin');
$this->assertEquals('admin', $admin->role); // true

SortByName

Global scope for Eloquent models to add sorting by name by default

Example:

class SomeModel extends Model {
...
    protected static function boot()
    {
        parent::boot();
        static::addGlobalScope(new \Saritasa\Database\Eloquent\Scopes\SortByName());
    }
...
}

Contributing

See CONTRIBUTING and Code of Conduct, if you want to make contribution (pull request) or just build and test project on your own.

Resources

About

Custom extensions for Eloquent

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 99.3%
  • Makefile 0.7%
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载