jeidison / native-query
Laravel 包,用于在外部文件中保存原生查询。
0.12.0
2021-12-23 01:24 UTC
Requires
- php: ^7.2|^8.0
- ext-dom: *
Requires (Dev)
- phpunit/phpunit: ^9.3
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();