sucohi / eloquent-array
一个Laravel包,用于处理可以通过where子句搜索的数组值。
6.0.0
2017-01-31 08:39 UTC
Requires
- laravel/framework: ~5.2
README
一个Laravel包,用于处理可以通过where子句搜索的数组值。
此包仅适用于Laravel 5.3及以上版本。
安装
执行以下命令。
composer require sukohi/eloquent-array:6.*
然后在config/app.php中设置EloquentArrayServiceProvider。
Sukohi\EloquentArray\EloquentArrayServiceProvider::class,
准备
执行以下命令以发布和迁移迁移。
php artisan vendor:publish --provider="Sukohi\EloquentArray\EloquentArrayServiceProvider"
php artisan migrate
然后在模型中设置EloquentArrayTrait
,如下所示。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Sukohi\EloquentArray\EloquentArrayTrait;
class Item extends Model
{
use EloquentArrayTrait;
}
用法
设置
$item = \App\Item::find(1);
$item->setArray('locales', [
'en' => 'English',
'es' => 'Spanish',
'ja' => 'Japanese'
]);
$item->saveArray();
取消设置
$item->unsetArray('locales'); // Remove `locales`
$item->saveArray();
// Or
$item->unsetArray('locales', 'en'); // Remove `en`
$item->saveArray();
删除
将删除与项目相关联的特定数组值。
\App\Item::find(1)->deleteArray('locales');
清除
删除与项目相关联的所有数组值。
\App\Item::find(1)->clearArray();
检索
带键
$item = \App\Item::find(1);
$array = $item->getArray('locales');
/*
Array
(
[en] => English
[es] => Spanish
[ja] => Japanese
)
*/
不带键
$array = $item->getArray('locales', false);
/*
Array
(
[0] => English
[1] => Spanish
[2] => Japanese
)
*/
所有值
$array = $item->getAllArray();
特定值
echo $item->getArrayValue('locales', 'en'); // English
// with Default Value
echo $item->getArrayValue('locales', 'en', 'Default-Value');
Where子句
您可以使用whereArray()方法过滤数据,如下所示。
$items = \App\Item::whereArray('locales', 'en')->get();
// or
$items = \App\Item::where('id', 1)
->orWhereArray('locales', 'en')
->get();
Order By子句
您可以使用数组项名称作为ORDER BY
,如下所示。
$items = \App\Item::orderByArray('names', 'en')->get(); // asc
$items = \App\Item::orderByArray('names', 'en', 'asc')->get();
// or
$items = \App\Item::orderByArray('names', 'en', 'desc')->get();
模型
[设置]
$item->setModelArray('App\User', 1); // Model ID
$item->saveArray();
[设置数组]
$item->setAllModelArray([
'App\User' => [1, 2, 3, 4, 5] // Model IDs
]);
$item->saveArray();
[取消设置]
$item->unsetModelArray([
'App\User' => [2, 3] // Model IDs
]);
$item->saveArray();
[清除]
$item->clearModelArray('App\User');
$item->saveArray();
// or
$item->clearModelArray([
'App\User',
'App\Item'
]);
$item->saveArray();
[检索]
$users = $item->getModelArray('App\User');
许可证
此包根据MIT许可证授权。
版权所有2016 Sukohi Kuhoh