delatbabel / fluents
将 Eloquent 模型对象转换为 Fluent 对象,反之亦然。
v1.4
2017-06-26 01:10 UTC
Requires
- php: >=5.4.0
- illuminate/contracts: ^5.0
- illuminate/support: ^5.0
This package is not auto-updated.
Last update: 2024-09-14 18:20:37 UTC
README
Laravel 扩展,用于在 Fluent 对象之间进行转换。
理由
Laravel 的 Fluent 对象是框架中最被低估和最未被充分利用的组件之一。本质上是一个独立的对象,它允许你将属性数组作为对象访问,而不是作为数组。
示例
而不是使用这样的数组
$myArray = []; $myArray['first'] = 'one'; $myArray['second'] = 'two; echo $myArray['first']; // prints "one"
使用这样的 Fluent 对象
$myObject = new Fluent(); $myObject->first = 'one'; $myObject->second = 'two'; echo $myObject->first; // prints "one"
然而,到目前为止,还没有标准的方法直接将 Eloquent 模型对象转换为 Fluent 对象。模型对象上有一个 toArray() 函数,但没有等效的 toFluent() 函数。
此组件通过一个可以应用于任何模型对象的特质添加了这样的函数。请注意,Laravel 的几个其他内部类也可以应用此特质,只要它们将数据存储在内部 attributes
数组中,这个特质应该可以工作。
用法
从 Fluent 对象填充模型
use Delatbabel\Fluents\Fluents; class User extends Eloquent { use Fluents; } $myFluent = new Fluent(); $myFluent->first = 'one'; $myUser = new User(); $myUser->fromFluent($myFluent);
从 Fluent 对象转换模型
use Delatbabel\Fluents\Fluents; class User extends Eloquent { use Fluents; } $myUser = User->find(1); $myFluent = User->toFluent();