jeidison / native-query
Laravel package for save native query in external file.
Installs: 2 380
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.2|^8.0
- ext-dom: *
Requires (Dev)
- phpunit/phpunit: ^9.3
README
$ composer require jeidison/native-query
Publish Settings
$ php artisan vendor:publish --provider="Jeidison\NativeQuery\Provider\NativeQueryServiceProvider"
This will add the nativequery.php file in your config directory with the following contents:
return [ 'path-sql' => database_path('native-query'), 'type' => Jeidison\NativeQuery\Enums\FileType::PHP, ];
And this will add the native-query.xml file in your database directory with the following contents:
SQL in file XML
<query name="findTab1"> SELECT * FROM TAB1 WHERE PAR1 = ? </query>
And this will add the native-query.php file in your database directory with the following contents:
SQL in file PHP
CONST findTab1 = " SELECT * FROM TAB1 WHERE PAR1 = :par1 ";
Add Trait in model
... class ModelX extends Model { use HasNativeQuery; protected $queryFile = '/path/file-with-queries'; ... }
Executing 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();