Porm
in package
Uses
TableLevelQueryTrait, AggregateTrait
Table of Contents
Properties
- $database : mixed
- The CDatabase object to use
- $alias : string|null
- $allowFilterOnly : bool
- $columns : string|array<string|int, mixed>|null
- $preventHas : bool
- $preventRaw : true
- $resultSet : mixed
- $table : mixed
- The CDatabase table to use. This is for interoperability with other versions of Porm
- $where : array<string|int, mixed>
Methods
- __construct() : mixed
- asJson() : bool|string
- asObject() : mixed
- avg() : string|null
- columns() : static
- This defines the table column names to return from the CDatabase
- count() : int|null
- createOrUpdate() : object|array<string|int, mixed>
- Acronym for saveOrUpdate
- deleteAll() : PDOStatement|null
- This deletes all items that match the where clause
- deleteById() : PDOStatement|null
- This is under the hood similar to deleteOne but it is more explicit
- filter() : Builder
- This switches the query to filter mode. It is useful for conditional querying.
- first() : object|array<string|int, mixed>|null
- This grabs the first [n] items from the CDatabase based on the pkField given
- get() : object|array<string|int, mixed>|null
- Fetches a single item from the CDatabase.
- getAlias() : string|null
- getDatabase() : Piql|null
- getOrThrow() : object|array<string|int, mixed>|null
- Get a resource or throw an exception if it does not exist
- has() : bool
- This checks if the table has a record that matches the where clause
- info() : array<string|int, mixed>
- Returns the details of the current db connection
- inTransaction() : void
- Using transactions. This is a wrapper for the action method in the Core class.
- join() : object|null
- Opens the portal to the joins builder. Once you call this, you can call the join methods
- last() : object|array<string|int, mixed>|null
- Grab the last item from the CDatabase based on the pkField clause
- lastQuery() : string|null
- Logs the last query that was run
- lastSaved() : string|null
- Returns the last saved id
- max() : string|null
- min() : string|null
- random() : array<string|int, mixed>|mixed|object
- Fetches random n items from the table, default to 1
- raw() : mixed
- This assists to perform raw sql queries
- save() : object
- Saves and returns the saved item as an object
- saveAll() : array<string|int, mixed>|PDOStatement|null
- Save multiple items in the database.
- saveOrUpdate() : object|array<string|int, mixed>
- Create a new item or update an existing item Supports both single and multiple items
- setAlias() : void
- setDatabase() : void
- setTable() : void
- sum() : string|null
- update() : PDOStatement|null
- checkFilterMode() : void
- This prevents the use of non-filtering methods in filter mode.
Properties
$database
The CDatabase object to use
public
mixed
$database
$alias
private
string|null
$alias
The alias to use, will defualt to the table name provided.
$allowFilterOnly
private
bool
$allowFilterOnly
= false
Lock out the use of any other method other than filter
$columns
private
string|array<string|int, mixed>|null
$columns
= '*'
The columns to select
$preventHas
private
bool
$preventHas
= false
Lock out the use of filter
$preventRaw
private
true
$preventRaw
= false
Lock out the use of raw queries
$resultSet
private
mixed
$resultSet
The result set to call asObject and asJson on.
$table
The CDatabase table to use. This is for interoperability with other versions of Porm
private
mixed
$table
$where
private
array<string|int, mixed>
$where
= []
The columns to select
Methods
__construct()
public
__construct(Connection $connection) : mixed
Parameters
- $connection : Connection
asJson()
public
asJson() : bool|string
Tags
Return values
bool|stringasObject()
public
asObject() : mixed
Tags
avg()
public
avg(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullcolumns()
This defines the table column names to return from the CDatabase
public
columns([string|array<string|int, mixed> $columns = "*" ]) : static
If you're in join mode, then all ambigous columns should define the table as an alias
Parameters
- $columns : string|array<string|int, mixed> = "*"
-
The columns to select defaults to * for all.
Tags
Return values
staticcount()
public
count([string|null $column = null ][, array<string|int, mixed>|null $where = null ]) : int|null
Parameters
- $column : string|null = null
- $where : array<string|int, mixed>|null = null
Tags
Return values
int|nullcreateOrUpdate()
Acronym for saveOrUpdate
public
createOrUpdate(array<string|int, mixed>|Arrayable $data[, string $pkField = 'id' ]) : object|array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>|Arrayable
- $pkField : string = 'id'
Tags
Return values
object|array<string|int, mixed>deleteAll()
This deletes all items that match the where clause
public
deleteAll(array<string|int, mixed> $where) : PDOStatement|null
Parameters
- $where : array<string|int, mixed>
Tags
Return values
PDOStatement|nulldeleteById()
This is under the hood similar to deleteOne but it is more explicit
public
deleteById(string|int $id[, string|null $idField = 'id' ]) : PDOStatement|null
Parameters
- $id : string|int
- $idField : string|null = 'id'
Tags
Return values
PDOStatement|nullfilter()
This switches the query to filter mode. It is useful for conditional querying.
public
filter([array<string|int, mixed>|null $where = [] ]) : Builder
Parameters
- $where : array<string|int, mixed>|null = []
-
The where clause to use
Tags
Return values
Builderfirst()
This grabs the first [n] items from the CDatabase based on the pkField given
public
first([int|null $size = 1 ][, array<string|int, mixed>|null $where = [] ][, string $pkField = 'id' ]) : object|array<string|int, mixed>|null
Parameters
- $size : int|null = 1
-
The number of items to fetch
- $where : array<string|int, mixed>|null = []
-
The where clause to use
- $pkField : string = 'id'
-
The primary key field to use
Tags
Return values
object|array<string|int, mixed>|nullget()
Fetches a single item from the CDatabase.
public
get([int|array<string|int, mixed>|string|null $where = null ][, string|null $idField = 'id' ]) : object|array<string|int, mixed>|null
If the where clause is not passed, it fetches the last item in the table. If the where clause is an integer, it fetches the item with the id. If the where clause is an array, it fetches the item that matches the where clause. If the where clause is null, it fetches the last item in the table.
Parameters
- $where : int|array<string|int, mixed>|string|null = null
- $idField : string|null = 'id'
-
defaults to id, pass this if you want to use a different field as the id other than id
Tags
Return values
object|array<string|int, mixed>|nullgetAlias()
public
getAlias() : string|null
Return values
string|nullgetDatabase()
public
getDatabase() : Piql|null
Return values
Piql|nullgetOrThrow()
Get a resource or throw an exception if it does not exist
public
getOrThrow([int|array<string|int, mixed>|string|null $where = null ][, string $message = 'Item not found' ][, string|null $idField = 'id' ]) : object|array<string|int, mixed>|null
Parameters
- $where : int|array<string|int, mixed>|string|null = null
- $message : string = 'Item not found'
- $idField : string|null = 'id'
Tags
Return values
object|array<string|int, mixed>|nullhas()
This checks if the table has a record that matches the where clause
public
has(string|array<string|int, mixed>|int|null $where[, string|null $pkField = 'id' ]) : bool
Parameters
- $where : string|array<string|int, mixed>|int|null
- $pkField : string|null = 'id'
Tags
Return values
boolinfo()
Returns the details of the current db connection
public
info() : array<string|int, mixed>
Return values
array<string|int, mixed>inTransaction()
Using transactions. This is a wrapper for the action method in the Core class.
public
inTransaction(callable $callback) : void
To access data outside the transaction, Create a result variable and refer to the transaction callback with the keyword use
, and you can get data back after when you assign it from inside.
Parameters
- $callback : callable
-
The callback to run. It should return a void.
Tags
join()
Opens the portal to the joins builder. Once you call this, you can call the join methods
public
join([array<string|int, mixed>|null $where = null ]) : object|null
Parameters
- $where : array<string|int, mixed>|null = null
Tags
Return values
object|nulllast()
Grab the last item from the CDatabase based on the pkField clause
public
last([int|null $size = 1 ][, array<string|int, mixed>|null $where = [] ][, string $pkField = 'id' ]) : object|array<string|int, mixed>|null
Parameters
- $size : int|null = 1
-
The number of items to fetch
- $where : array<string|int, mixed>|null = []
-
The where clause to use
- $pkField : string = 'id'
-
The primary key field to use
Tags
Return values
object|array<string|int, mixed>|nulllastQuery()
Logs the last query that was run
public
lastQuery() : string|null
Return values
string|null —The last query that was run
lastSaved()
Returns the last saved id
public
lastSaved() : string|null
Return values
string|nullmax()
public
max(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullmin()
public
min(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullrandom()
Fetches random n items from the table, default to 1
public
random([int|null $limit = 1 ][, array<string|int, mixed>|null $where = null ]) : array<string|int, mixed>|mixed|object
Parameters
- $limit : int|null = 1
- $where : array<string|int, mixed>|null = null
Tags
Return values
array<string|int, mixed>|mixed|objectraw()
This assists to perform raw sql queries
public
raw(string $query[, array<string|int, mixed>|null $params = [] ][, string|null $using = 'db' ]) : mixed
Parameters
- $query : string
- $params : array<string|int, mixed>|null = []
- $using : string|null = 'db'
Tags
save()
Saves and returns the saved item as an object
public
save(array<string|int, mixed> $data) : object
Parameters
- $data : array<string|int, mixed>
-
The data to save. Must be an associative array
Tags
Return values
object —The saved object
saveAll()
Save multiple items in the database.
public
saveAll(array<string|int, mixed> $data[, bool $returning = true ]) : array<string|int, mixed>|PDOStatement|null
Parameters
- $data : array<string|int, mixed>
-
The data to save. Must be an associative array
- $returning : bool = true
-
If true, it returns the resultset containing the saved items
Tags
Return values
array<string|int, mixed>|PDOStatement|nullsaveOrUpdate()
Create a new item or update an existing item Supports both single and multiple items
public
saveOrUpdate(array<string|int, mixed>|Arrayable $data[, string $pkField = 'id' ]) : object|array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>|Arrayable
- $pkField : string = 'id'
Tags
Return values
object|array<string|int, mixed>setAlias()
public
setAlias(string|null $alias) : void
Parameters
- $alias : string|null
setDatabase()
public
setDatabase(Piql $database) : void
Parameters
- $database : Piql
setTable()
public
setTable(string|null $table) : void
Parameters
- $table : string|null
sum()
public
sum(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullupdate()
public
update(array<string|int, mixed> $data, array<string|int, mixed>|int|string $where[, string|null $idField = 'id' ]) : PDOStatement|null
Parameters
- $data : array<string|int, mixed>
- $where : array<string|int, mixed>|int|string
- $idField : string|null = 'id'
Tags
Return values
PDOStatement|nullcheckFilterMode()
This prevents the use of non-filtering methods in filter mode.
private
checkFilterMode([string $msg = 'Query is in filter mode, you cannot use this method in filter mode' ]) : void
Case here is like calling get() on join() yet join() return no resultset yet.
Parameters
- $msg : string = 'Query is in filter mode, you cannot use this method in filter mode'
-
The message to throw
This is primarily used internally for the purpose.
$this->checkFilterMode("You cannot delete at this point in the query, check the usage of the `delete()` method in the query builder for ".$this->table);