sfneal / models
扩展功能的Eloquent模型包装器
4.0.0
2024-05-01 21:33 UTC
Requires
- php: ^8.0
- laravel/framework: ^8.75|^9.0|^10.0|^11.0
- sfneal/actions: ^2.0
- sfneal/laravel-helpers: ^2.0
- sfneal/redis-helpers: ^1.2|^2.0|^3.0
- sfneal/string-helpers: >=1.1.4
Requires (Dev)
- laravel/legacy-factories: >=1.1.0
- orchestra/testbench: ^7.40|^8.0|9.0
- phpunit/phpunit: ^9.6|^10.0|^11.0
- sfneal/array-helpers: ^3.0
This package is auto-updated.
Last update: 2024-09-20 17:14:15 UTC
README
扩展功能的Eloquent模型包装器。
安装
您可以通过composer安装此包
composer require sfneal/models
用法
模型
AbstractModel
、AbstractPivot
和AbstractAuthenticatable
可以作为父类使用,就像Eloquent的Model
、Pivot
和Authenticatable
一样使用。AbstractModel
使用Sfneal\Builders\QueryBuilder
作为默认的Eloquent查询构建器(见sfneal/builders)。
class YourModel extends AbstractModel { protected $table = 'your_model'; protected $primaryKey = 'your_model_id'; protected $fillable = [ 'your_model_id', // ]; }
扩展AbstractModel
类的模型将能够访问许多扩展模型现有功能的方法。
- ‘新’- 方法用于确定模型是否为新(对于具有CMS的应用程序很有用)或模型有多新
- ‘更改’- 方法用于检查模型是否最近创建、更新、删除或未更改
// Create a new Model record $model = YourModel::query()->create($data); // returns true $model->wasCreated(); // Update the Model $model->update([ 'some_attribute' => 'blue' ]); // returns false $model->wasCreated(); // returns true $model->wasUpdated();
构建器
通过覆盖内置的新EloquentBuilder()和query()方法,将自定义QueryBuilder添加到任何Eloquent模型中。
use Illuminate\Database\Eloquent\Builder; use Sfneal\Builders\QueryBuilder; class ExampleModel extends Model { /** * Query Builder. * * @param $query * @return QueryBuilder */ public function newEloquentBuilder($query) { return new QueryBuilder($query); } /** * Query Builder method for improved type hinting. * * @return QueryBuilder|Builder */ public static function query() { return parent::query(); } }
测试
composer test
变更日志
请参阅CHANGELOG以获取更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件stephen.neal14@gmail.com与联系,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。
PHP包模板
此包使用PHP包模板生成。