PHP Class Bluz\Db\Relations

Author: Anton Shevchuk
Show file Open project: bluzphp/framework Class Usage Examples

Protected Properties

Property Type Description
$modelClassMap array [ 'Pages' => '\Application\Pages\Table', 'Users' => '\Application\Users\Table', ]
$relations array [ 'Model1:Model2' => ['Model1'=>'foreignKey', 'Model2'=>'primaryKey'], 'Pages:Users' => ['Pages'=>'userId', 'Users'=>'id'], 'PagesTags:Pages' => ['PagesTags'=>'pageId', 'Pages'=>'id'], 'PagesTags:Tags' => ['PagesTags'=>'tagId', 'Tags'=>'id'], 'Pages:Tags' => ['PagesTags'], ]

Public Methods

Method Description
addClassMap ( string $model, string $className ) : void Add information about model's classes
createRow ( string $modelName, array $data ) : Row Get information about Table classes
fetch ( array $input ) : array Fetch by Divider
findRelation ( Row $row, string $relation ) : array findRelation
findRelations ( string $modelOne, string $modelTwo, array $keys ) : array Find Relations between two tables
getModelClass ( string $model ) : string Get information about Model classes
getRelations ( string $modelOne, string $modelTwo ) : array | false Get relations
setRelation ( string $modelOne, string $keyOne, string $modelTwo, string $keyTwo ) : void Setup relation between two models
setRelations ( string $modelOne, string $modelTwo, array $relations ) : void Setup multi relations

Method Details

addClassMap() public static method

Add information about model's classes
public static addClassMap ( string $model, string $className ) : void
$model string
$className string
return void

createRow() public static method

Get information about Table classes
public static createRow ( string $modelName, array $data ) : Row
$modelName string
$data array
return Row

fetch() public static method

Fetch by Divider
public static fetch ( array $input ) : array
$input array
return array

findRelation() public static method

findRelation
public static findRelation ( Row $row, string $relation ) : array
$row Row
$relation string
return array

findRelations() public static method

Find Relations between two tables
public static findRelations ( string $modelOne, string $modelTwo, array $keys ) : array
$modelOne string Table
$modelTwo string Target table
$keys array Keys from first table
return array

getModelClass() public static method

Get information about Model classes
public static getModelClass ( string $model ) : string
$model string
return string

getRelations() public static method

Get relations
public static getRelations ( string $modelOne, string $modelTwo ) : array | false
$modelOne string
$modelTwo string
return array | false

setRelation() public static method

Setup relation between two models
public static setRelation ( string $modelOne, string $keyOne, string $modelTwo, string $keyTwo ) : void
$modelOne string
$keyOne string
$modelTwo string
$keyTwo string
return void

setRelations() public static method

Setup multi relations
public static setRelations ( string $modelOne, string $modelTwo, array $relations ) : void
$modelOne string
$modelTwo string
$relations array
return void

Property Details

$modelClassMap protected static property

[ 'Pages' => '\Application\Pages\Table', 'Users' => '\Application\Users\Table', ]
protected static array $modelClassMap
return array

$relations protected static property

[ 'Model1:Model2' => ['Model1'=>'foreignKey', 'Model2'=>'primaryKey'], 'Pages:Users' => ['Pages'=>'userId', 'Users'=>'id'], 'PagesTags:Pages' => ['PagesTags'=>'pageId', 'Pages'=>'id'], 'PagesTags:Tags' => ['PagesTags'=>'tagId', 'Tags'=>'id'], 'Pages:Tags' => ['PagesTags'], ]
protected static array $relations
return array