-
ifNull
-
ifCount
-
ifSum
-
sumColumn
-
countColumn
-
concat
-
caseWhen
-
whereLike
-
orWhereLike
-
getSql
-
dumpSql
-
ddSql
bash command
composer require fatihirday/eloquent
add provider to config/app.php
'providers' => [
// ...
Fatihirday\Eloquent\EloquentServiceProvedir::class,
],
Prepared for Mysql and PostgreSql
Return the specified value IF the expression is NULL, otherwise return the expression
Model::ifNull('column', 'value', 'responseName');
// or
Model::query()->ifNull('column', 'value', 'responseName');
Count of values satisfying the if condition
Model::ifCount('column', 12, 'responseName');
// or
Model::ifCount('column', '!=', 'value', 'responseName');
Sum of values satisfying the if condition
Model::ifSum('column', '!=', 'value', 'responseName');
// or
Model::ifSum('column', '=', 'value', 'sumColumn', 'responseName');
Model::sumColumn('column'); // sum(column) as column
// or
Model::sumColumn('column', 'responseName'); // sum(column) as responseName
Model::countColumn('column'); // count(column) as column
// or
Model::countColumn('column', 'responseName'); // count(column) as responseName
Model::concat(['name', 'id'], 'responseName') // nameid
// or
Model::concat(['name', 'id'], 'responseName', '-') // name-id
Model::caseWhen([
'updated_at > created_at' => 'updated_at', // When Then
'deleted_at > created_at' => 'deleted_at', // When Then
'created_at', // Else
], 'responseName')
use Fatihirday\Eloquent\Libraries\Enums\Like;
Model::whereLike('columnName', 'value', Like::FIRST);
// WHERE columnName like '%value'
Model::whereLike('columnName', 'value', Like::MIDDLE);
// WHERE columnName like '%value%'
Model::whereLike('columnName', 'value', Like::LAST);
// WHERE columnName like 'value%'
use Fatihirday\Eloquent\Libraries\Enums\Like;
Model::where('id', '>', 1)->orWhereLike('columnName', 'value', Like::FIRST);
// WHERE id > 1 or columnName like '%value'
Model::where('id', '>', 1)->orWhereLike('columnName', 'value', Like::MIDDLE);
// WHERE id > 1 or columnName like '%value%'
Model::where('id', '>', 1)->orWhereLike('columnName', 'value', Like::LAST);
// WHERE id > 1 or columnName like 'value%'
toSql and getBindings merge
echo Model::where('name', 'value')->getSql();
// select * from `table_name` where `name` = 'fatih'
dump for getSql
Model::where('name', 'value')->dumpSql();
// select * from `table_name` where `name` = 'fatih'
dd for getSql
Model::where('name', 'value')->ddSql();
// select * from `table_name` where `name` = 'fatih'