juksta / laravel-raw-sql-builder
Create and operate raw sql as string with parameters support
dev-master
2020-11-16 08:45 UTC
Requires
- php: >=7.1.1
- illuminate/database: >=5.8
Requires (Dev)
- mockery/mockery: ^1.4.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-05-17 04:37:18 UTC
README
Laravel Raw SQL Builder is a library that helps build raw sql text queries. It's built on top of the Eloquent query builder.
Usage
$bindings = []; $fields = " b.id, b.name, pp.name as product_plan, b.created_at "; $sql = " SELECT :fields FROM business b LEFT JOIN business_unit bu ON (bu.business_id = b.id AND bu.active = 1) "; $queryBuilder = $this->getQueryBuilder(); $queryBuilder->where(new Expression('b.name'), 'like', '%LTD%'); $sql .= $this->compileWheresSql($queryBuilder) . ' '; $bindings += $queryBuilder->getBindings(); if ($condition) { $orderColumn = 'b.name'; $orderDirection = 'ASC'; $queryBuilder->orderBy($orderColumn, $orderDirection); } if (true) { $offset = 10; $length = 10; $queryBuilder->offset($offset); $queryBuilder->limit($length); } $totalSql = $sql; $sql .= $this->compileOrdersSql($queryBuilder) . ' '; $sql .= $this->compileLimitSql($queryBuilder) . ' '; $sql .= $this->compileOffsetSql($queryBuilder); $sql = trim(str_replace(":fields", $fields, $sql)); $items = DB::select(DB::raw($sql), $bindings);