1. Go to this page and download the library: Download drewlabs/laravel-query library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// ...
use function Drewlabs\Laravel\Query\Proxy\DMLManager;
// Example class
use App\Models\Example;
// Create a query manager for querying database using Example model
$ql = DMLManager(Example::class);
// Insert single values to the database
$example = DMLManager(Example::class)->create([/* ... */]);
$person = DMLManager(Example::class)->create([
/* ... */
'addresses' => [ [/* ... */] ],
'profile' => [/* ... */]
],[
// Here we tells the query provider to use `profile`, `addresses` keys of `inputs` as relation
// methods of the model class
'relations' => ['addresses', 'profile']
]);
// Insert single values to the database
$example = DMLManager(Example::class)->create([/* ... */], function($value) {
// Do something with the created value
});
$person = DMLManager(Example::class)->update(1, ['firstname' => '...']);
// Update by ID String
$person = DMLManager(Example::class)->update("1", ['firstname' => '...']);
// Update using query without mass update
$count = DMLManager(Example::class)->update(['and' => ['name', '...']], ['firstname' => '...']);
// DELETE AN ITEM BY ID
$result = DMLManager(Example::class)->delete(1);
// DELET AN ITEM USING QUERY FILTERS
$result = DMLManager(Example::class)->delete(['and' => ['...', '...']], true);
$person = DMLManager(Person::class)->select("1", ['*'], function ($model) {
return $model->toArray();
});
// Select by ID
$person = DMLManager(Person::class)->select(1);
$list = DMLManager(Person::class)->select([/* ... */],['firstname', 'addresses']);
// Select using query filters
$list = DMLManager(Person::class)->select([/* ... */], 15, ['addresses', 'profile'], 1);
use Drewlabs\Laravel\Query\Proxy\CreateQueryFilters;
/// Note: Each key is an eloquent model/Eloquent query builder method
/// Parameters are passed in the order and the same way they are passed to the model method, but are specified as array
$filter = CreateQueryFilters([
// Creatigng a where query
'where' => [
['label', '<LabelValue>'],
['slug', 'like', '<SlugValue>']
],
'orWhere' => ['id' , '<>', '<IDValue>'],
'whereHas' => ['relation_name', function($query){
// ... Provide the subquery
}],
// Multiple subqueries at once
'whereDoesntHave' => [
['relation1', function($query){
// ... Provide the subquery
}],
['relation1', function($query){
// ... Provide the subquery
}]
],
// Query date field
'whereDate' => [$date],
// Query relation presence
'has' => 'hasRelation',
// Query presence of multiple relations
'has' => ['relation1', 'relation2'],
// Where in query
'whereIn' => ['column', [...]],
// Multiple WherNotIn query
'whereNotIn' => [
['colum1', [...]],
['colum2', [...]]
],
// Join query
'join' => [
Folder::class,
['model' => UploadedFile::class, 'column' => 'folder_id'],
['model' => Folder::class, 'column' => 'id']
],
// Normal laravel join
'join' => ['table1', 'table2.id', '=', 'table1.user_id']
]);
// Calling the query filter on laravel database builder instance
$result = $filter->call(TestModel::query())->get($columns = ['*']);
use function Drewlabs\Laravel\Query\Proxy\useActionQueryCommand;
use function Drewlabs\Laravel\Query\Proxy\DMLManager;
use function Drewlabs\Laravel\Query\Proxy\SelectQueryAction;
use function Drewlabs\Support\Proxy\Action;
$command = useActionQueryCommand(Test::class);
// Calling command with an action using `call` method
$result = $command->call(SelectQueryAction($id));
// Calling the command using a callable interface
$result = $command(Action('SELECT' , $id));
// Creating and calling the the command API
useActionQueryCommand(Test::class)(SelectQueryAction($id));
use function Drewlabs\Laravel\Query\Proxy\SelectQueryAction;
// ...
// Example
$action = SelectQueryAction($id) // Creates a select by id query
use function Drewlabs\Laravel\Query\Proxy\SelectQueryAction;
//...
// Example
$action = SelectQueryAction([ 'where' => ['id', 12] ]);
use function Drewlabs\Laravel\Query\Proxy\CreateQueryFilters;
use function Drewlabs\Laravel\Query\Proxy\SelectQueryAction;
// ...
// Example
$action = SelectQueryAction(CreateQueryFilters(...));
use function Drewlabs\Laravel\Query\Proxy\UpdateQueryAction;
// ...
// Example
$action = UpdateQueryAction($id, ['name' => 'John Doe'])
use function Drewlabs\Laravel\Query\Proxy\UpdateQueryAction;
// ...
// Example
$action = UpdateQueryAction(CreateQueryFilters(...), ['name' => 'John Doe'])
use function Drewlabs\Laravel\Query\Proxy\UpdateQueryAction;
use function Drewlabs\Laravel\Query\Proxy\CreateQueryFilters;
// ...
// Example
$action = UpdateQueryAction(['where' => ['id' => 3]], ['name' => 'John Doe'])
use function Drewlabs\Laravel\Query\Proxy\DeleteQueryAction;
// ...
// Example
$action = DeleteQueryAction($id)
use function Drewlabs\Laravel\Query\Proxy\DeleteQueryAction;
// ...
// Example
$action = DeleteQueryAction(['where' => ['id' => 3]])
use function Drewlabs\Laravel\Query\Proxy\DeleteQueryAction;
use function Drewlabs\Laravel\Query\Proxy\CreateQueryFilters;
// ...
// Example
$action = DeleteQueryAction(CreateQueryFilters(...))
use function Drewlabs\Laravel\Query\Proxy\CreateQueryAction;
// ...
// Example
$action = CreateQueryAction([...])
use function Drewlabs\Laravel\Query\Proxy\CreateQueryAction;
// ...
// Example
$object = new stdClass;
$object->name = 'John Doe';
$object->notes = 67;
$action = CreateQueryAction($object);
use function Drewlabs\Laravel\Query\Proxy\useActionQueryCommand;
use function Drewlabs\Laravel\Query\Proxy\DMLManager;
use use Drewlabs\Contracts\Support\Actions\Action;
$command = useActionQueryCommand(TestModel::class, function(Action $action, ?\Closure $callback = null) {
// Provides custom action handlers
});
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.