sucohi / order-by-relationship
一个允许您按关系列排序数据库数据的 Laravel 扩展包。
1.0.1
2018-12-26 15:47 UTC
Requires
- laravel/framework: ~5.0
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.*
准备
在你的模型中设置 OrderByRelationshipTrait
和 relationship
,后者为 HasOne
或 BelongsTo
。
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