signifly/laravel-builder-macros

一套有用的 Laravel 构建器宏。

v2.0.0 2023-11-21 13:47 UTC

This package is auto-updated.

Last update: 2024-09-21 15:35:29 UTC


README

Latest Version on Packagist Tests StyleCI Quality Score Total Downloads

signifly/laravel-builder-macros 包允许您轻松地向您的 Laravel 应用添加一组有用的构建器宏。

安装

您可以通过 composer 安装此包

composer require signifly/laravel-builder-macros

该包将自动注册自己。

addSubSelect

添加一个选择子查询。

// Params: $column, $query
$query->addSubSelect('primary_address_id', 
    Address::select('id')
        ->where('user_id', $user->id)
        ->primary()
);

// It adds primary_address_id to the result set

defaultSelectAll

它选择查询中的所有列。对于有连接和额外选择的查询很有用。

$query->defaultSelectAll()
    ->join('contacts', 'users.id', '=', 'contacts.user_id')
    ->addSelect('contacts.name as contact_name');

joinRelation

一种查询方式来连接关系。

// Params: $relationName, $operator
$query->joinRelation('contact');

leftJoinRelation

一种查询方式来左连接关系。

// Params: $relationName, $operator
$query->leftJoinRelation('contact');

map

一种直接检索结果并将其映射的方法。

$userIds = $query->where('user_id', 10)->map(function ($user) {
    return $user->id;
});

// Returns a collection

whereLike

使用 LIKE 操作符在模型中进行搜索。

$query->whereLike('title', 'john')->get();

// Returns all results where title  includes `john`

您也可以提供一个要搜索的列数组

$query->whereLike(['title', 'contact.name'], 'john')->get();

// Returns all results where title or contact.name includes `john`

测试

composer test

安全性

如果您发现任何安全问题,请通过电子邮件发送到 dev@signifly.com,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件