Class gTable is a tool to make queries to the database, that escapes sql injections and checks the user permissions for you.
How to create an instance:
$userTable = new gTable('user');
$userTable = new gTable('src/core/tables/user.php');
Parameters
- $name:string the table name or the relevant schema file
- $permissions:assoc the permissions list Default: admin
The permissions that will be send will override this array:
[
'create'=> ['admin'],
'read'=> ['admin'],
'update'=> ['admin'],
'delete'=> ['admin']
]
So, by default the created gTable instance uses the admin permission, and it will compare them with the permissions that the table schema accepts. The The keys of the array can have a string array of permissions or boolean (true|false) for value.
Returns the table name
Returns the field name used as primary key
Returns true if an action is permited based on permissions. When a field name is no specified the response applies for the default permission for all the fields.
Parameters
- $action:string the action name
- $field:string (optional) field name
The permissions that will be send will override this array:
$permissions = user::permissions(session::user_id());
$userTable = new gTable('user', $permissions);
$userTable->can('read', 'password');
$userTable->can('delete'); // create & delete are not specified for fields
Returns all table schema
Returns field schemas
Returns a new row with empty and predefined values
Returns a result in assoc arrow
Parameters
- $filters: the filters
- $args: (optional) more arguments
Example
$row = $user->getRow(['id'=>1]);
Argument keys
- select:array the list of fields to return
- orderby:assoc the prefered order of the results
- limit:int/array the limit values for the query
- page:int the page of total results (calculates the limit values)
Returns all results
Parameters
- $filters:assoc (optional) the filters
- $args:assoc (optional) more arguments
Example
$userNames = $user->getRows([
'active'=> 1
],
[
'select'=> ['name'],
'orderby'=> ['name'=>'ASC'],
'page'=> 1
]);
Like getRows(), but rows are indexed arrays not associative arrays
Parameters
- $filters:assoc (optional) the filters
- $args:assoc (optional) more arguments
Returns the number of rows found
Parameters
- $filters:assoc (optional) the filters
Deletes a row from the database table
Parameters
- $id:int the value of primary key