jayceedaily/laravel-traversify 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jayceedaily/laravel-traversify

最新稳定版本:v2.2.16

Composer 安装命令:

composer require jayceedaily/laravel-traversify

包简介

easy traverse eloquent models

README 文档

README

Total Downloads Scrutinizer Code Quality

Installation

Composer

Install via composer using composer require jayceedaily/laravel-traversify

Model setup

use Traversify/Traversify;
use Traversify/Traversable;

use Eloquent;

class Task extends Eloquent implements Traversable {
	use Traversify;

    // Configure the fields to be searched
    protected $search = [
        'name', 'description'
    ];

    // Configure the fields to be sorted
    protected $sort = [
        'created_at', 'name', 'completed_at'
    ];

    // Configure the fields to be filtered
    protected $filter = [
        'type_id', 'status'
    ];
    
}

Controller Setup

use MyModel

class MyController {

     public function index() {

          return MyModel::traversify();

     }
}

Configure

To use a search like function, you must create a static variables and assign an array containing an array of the fields that needed to be searched. These are the following:

  • $searchables
  • $filterables
  • $orderables
  • $rangables

Search

This uses a %keyword% approach in sql. Traversify currently does not support scout or any advance search engine. For basic usage, this is more than enough.

use Traversify/Traversify;
    
    class MyModel {
    
    	use Traversify;
    
        public static $searchables = ['title', 'description']
    }

Filter

Use filter for foreign key values of tables. This will only pull data whose foreign key values matches the requested filter.

use Traversify/Traversify;
    
    class MyModel {
    
    	use Traversify;
    
        public static $filterables = ['status_id', 'is_active']
    }

Order / Sort

Can sort fields with number, letters, but is commonly used on dates which is also supported.

use Traversify/Traversify;
    
    class MyModel {
    
    	use Traversify;
    
        public static $orderables = ['created_at', 'is_active']
    }

Range

Show records only that has values within the requested values. Requires 2 values, start & end.

use Traversify/Traversify;
    
    class MyModel {
    
    	use Traversify;
    
        public static $rangables = ['created_at', 'price']
    }

Custom

For added custom query/s you can pass a query function inside traversify(). This is then combined to the existing queries that traversify already uses.

use MyModel;

class MyController {

     public function index()
     {
          return MyModel::traversify(function($q){
               
               $q->where('is_active', TRUE);
               
          });
     }
}

统计信息

  • 总下载量: 115
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 0
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-07-20