delatbabel/fluents

将 Eloquent 模型对象转换为 Fluent 对象,反之亦然。

v1.4 2017-06-26 01:10 UTC

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();