jeidison/native-query

Laravel package for save native query in external file.

0.12.0 2021-12-23 01:24 UTC

This package is auto-updated.

Last update: 2024-04-30 00:25:49 UTC


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();