You can install the package via composer:
composer require onursimsek/laravel-extended
- Illuminate\Database\Query\Builder
- Illuminate\Support\Str
- Illuminate\Support\Stringable
- Useful Traits
Product::whereGreaterThan('price', 500)->get();
// select * from products where price > 500
Product::whereGreaterThanOrEqual('price', 500)->get();
// select * from products where price >= 500
Product::whereLessThan('price', 500)->get();
// select * from products where price < 500
Product::whereLessThanOrEqual('price', 500)->get();
// select * from products where price <= 500
Product::whereColumnGreaterThan('price', 'amount')->get();
// select * from products where price > amount
Product::whereColumnGreaterThanOrEqual('price', 'amount')->get();
// select * from products where price >= amount
Product::whereColumnLessThan('price', 'amount')->get();
// select * from products where price < amount
Product::whereColumnLessThanOrEqual('price', 'amount')->get();
// select * from products where price <= amount
Product::whenWhere(false, 'is_active')->get();
// select * from products
Product::whenWhere(true, 'is_active')->get();
// select * from products where is_active = 1
use Illuminate\Support\Str;
Str::squishBetween("I\twill kiss\t\nyou!", 'kiss', 'you');
// I will kiss you!
Str::replaceBetween('I will kiss you!', 'will', 'you', 'miss');
// I will miss you!
Str::replaceBetweenMatch('I will kiss you!', 'will', 'you', '/k(.*)s/', 'hug');
// I will hug you!
use Illuminate\Support\Str;
Str::of("I\twill kiss\t\nyou!")->squishBetween('kiss', 'you');
// I will kiss you!
Str::of('I will kiss you!')->replaceBetween('will', 'you', 'miss');
// I will miss you!
Str::of('I will kiss you!')->replaceBetweenMatch('will', 'you', '/k(.*)s/', 'hug');
// I will hug you!
This trait provides an easy way to manage database transactions across multiple connections. It allows you to begin, commit, and roll back transactions.
This method starts a transaction on the specified database connections. If no connections are provided, the default database connection specified in your Laravel configuration will be used.
$this->beginTransaction(); // Starts transaction on default connection
$this->beginTransaction('mysql', 'sqlite'); // Starts transactions on the 'mysql' and 'sqlite' connections
This method commits a transaction on the specified connections. If no connections are specified, nothing will happen.
$this->commit(); // No action taken (no specific connection provided)
$this->commit('mysql', 'sqlite'); // Commits the transactions on the 'mysql' and 'sqlite' connections
This method commits transactions on all connections that have begun a transaction during the lifetime of the object.
$this->commitAll(); // Commits all active transactions
This method rolls back a transaction on the specified connections.
$this->rollBack(); // Rolls back on the default connection
$this->rollBack('mysql', 'sqlite'); // Rolls back on the 'mysql' and 'sqlite' connections
This method rolls back transactions on all connections that have begun a transaction during the lifetime of the object.
$this->rollBackAll(); // Rolls back all active transactions
namespace App\Http\Controllers\Controller;
use OnurSimsek\LaravelExtended\Support\InteractsWithDatabase;
class Controller
{
use InteractsWithDatabase;
public function store()
{
$this->beginTransaction('mysql', 'pgsql');
try {
// Your data processing logic
$this->commitAll(); // Commit the transactions if everything goes well
} catch (\Exception $e) {
$this->rollBackAll(); // Roll back if an error occurs
throw $e;
}
}
}
This trait converts the names of UnitEnum into an array.
enum Status
{
use HasName;
case Active;
case Inactive;
}
Status::names(); // ['Active', 'Inactive']
This trait converts the names and values of BackedEnum into an array
enum Status: string
{
use HasValue;
case Active = 'active';
case Inactive = 'inactive';
}
Status::names(); // ['Active', 'Inactive']
Status::values(); // ['active', 'inactive']
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.