jeidison/

native-query

Laravel 包,用于在外部文件中保存原生查询。

0.12.0 2021-12-23 01:24 UTC

This package is auto-updated.

Last update: 2024-08-30 01:17:43 UTC


README

$ composer require jeidison/native-query

发布设置

$ php artisan vendor:publish --provider="Jeidison\NativeQuery\Provider\NativeQueryServiceProvider"

这将向您的配置目录中添加 nativequery.php 文件,内容如下

return [
    'path-sql' => database_path('native-query'),
    'type' => Jeidison\NativeQuery\Enums\FileType::PHP,
];

并且这将向您的数据库目录中添加 native-query.xml 文件,内容如下

文件 XML 中的 SQL

<query name="findTab1">
    SELECT * FROM TAB1 WHERE PAR1 = ?
</query>

并且这将向您的数据库目录中添加 native-query.php 文件,内容如下

文件 PHP 中的 SQL

CONST findTab1 = "
SELECT * FROM TAB1 WHERE PAR1 = :par1
";

在模型中添加 Trait

...

class ModelX extends Model
{
    use HasNativeQuery;
    
    protected $queryFile = '/path/file-with-queries';

    ...
}

执行 SQL

ModelX::nativeQuery('findTab1')->param('par1', 'value1')->param('par2', 'value2')->exec();

ModelX::nativeQuery('findTab1')->param(['par1' => 'value1'])->exec();

ModelX::nativeQuery('findTab1')->param(['par1' => 'value1'])->->debug();

NativeQuery::query('findTab1')
            ->queryFile('/path/file-with-queries')
            ->param('par1', 'value1')
            ->exec();