mphpmaster/model-query-selector

Laravel ModelQuerySelector - SQL 列选择实用工具

1.2.2 2024-04-20 11:04 UTC

This package is auto-updated.

Last update: 2024-09-20 11:46:57 UTC


README

Laravel ModelQuerySelector 是一个强大的包,旨在简化 Laravel 应用程序中 SQL 选择查询的构建。它提供了一个流畅的接口来构建列选择和表别名,简化了复杂查询的创建。

功能

  • 流畅接口:使用流畅且直观的语法轻松构建 SQL 选择查询。
  • 列选择:有效地指定查询中要选择的列。
  • 表别名:定义表别名以提高查询的可读性和清晰度。
  • 动态和静态方法:使用静态和动态方法调用创建查询。

依赖关系

  • php >=8.1 在您的项目中必需
  • laravel >=8 在您的项目中必需
  • illuminate/support >=8 Composer 会自动安装
  • laravel/helpers ^1.5 Composer 会自动安装

安装

您可以通过 Composer 安装 Laravel ModelQuerySelector 包。在您的终端中运行以下命令

composer require mphpmaster/model-query-selector

该包将自动注册其服务提供者。

使用方法

辅助函数

您可以使用 mqs 辅助函数创建 ModelQuerySelector 实例

use MPhpMaster\ModelQuerySelector\ModelQuerySelector;

// Usage example
$querySelector = mqs(User::class, 'u');
dump($querySelector); // Outputs: "users as u"

手动实例化

您还可以如下手动实例化 ModelQuerySelector

use MPhpMaster\ModelQuerySelector\ModelQuerySelector;
use App\Models\User;

// Static method call to qc()
$querySelector = ModelQuerySelector::qc(['column1', 'column2'], User::class);
dump($querySelector); // Outputs: "users.column1, users.column2"

// Static method call to table()
$querySelector = ModelQuerySelector::table(User::class, 'alias');
dump($querySelector); // Outputs: "users as alias"

// Dynamic method call to table()
$querySelector = new ModelQuerySelector();
$querySelector->table(User::class, 'alias');
dump($querySelector); // Outputs: "users as alias"

// Dynamic method call to qc()
$querySelector = new ModelQuerySelector(User::class);
$querySelector->qc(['column1', 'column2'], 'alias');
dump($querySelector); // Outputs: "alias.column1, alias.column2"

toString 方法

toString 方法返回 ModelQuerySelector 实例的字符串表示形式

use MPhpMaster\ModelQuerySelector\ModelQuerySelector;

$querySelector = mqs(User::class, 'u');
echo $querySelector->toString(); // Outputs: "users as u". same as: `echo trim($querySelector);`

许可证

Laravel ModelQuerySelector 包是开源软件,许可证为 MIT 许可

贡献

欢迎贡献!请随时在 GitHub 上提交错误报告、功能请求或拉取请求。

支持

对于任何问题或问题,请在 GitHub 上 创建一个问题

致谢

此包由 hlaCk 创建和维护。

感谢

特别感谢 Laravel 社区持续的支持和贡献。

支持巴勒斯坦 🇵🇸 #FreePalestine