sucohi/order-by-relationship

一个允许您按关系列排序数据库数据的 Laravel 扩展包。

1.0.1 2018-12-26 15:47 UTC

This package is auto-updated.

Last update: 2024-08-27 04:52:13 UTC


README

一个允许您按关系列排序数据库数据的 Laravel 扩展包。
此扩展包在 Laravel 5.7 下维护。

安装

composer require sukohi/order-by-relationship:1.*

准备

在你的模型中设置 OrderByRelationshipTraitrelationship,后者为 HasOneBelongsTo

use Sukohi\OrderByRelationship\Traits\OrderByRelationshipTrait;

class User extends Model
{
    use OrderByRelationshipTrait;
    
    // Relationship
    public function user_type() {

        return $this->hasOne(\App\UserType::class, 'id', 'user_type_id');

    }

}

现在你的模型有 orderByRelationship() 方法。

用法

按如下设置关系名称和排序闭包。

$users = \App\User::orderByRelationship('user_type', function($q){

    return $q->orderBy('name', 'desc');

})
->get();

注意:您需要返回查询。

依赖

由于 SQL 查询包含 ORDER BY FIELD() 子句,此扩展包可能无法在您的环境中使用。
我的意思是 MySQL 有这个子句,但它取决于其他数据库及其版本,我想。

许可证

此扩展包受 MIT 许可证的许可。

版权所有 2018 Sukohi Kuhoh