/
ModelSet.class.php
35 lines (28 loc) · 941 Bytes
/
ModelSet.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
Library::import('recess.database.pdo.PdoDataSet');
class ModelSet extends PdoDataSet {
function __call($name, $arguments) {
$relationship = Model::getRelationship($this->rowClass, $name);
if($relationship === false && Inflector::isPlural($name)) {
$name = Inflector::toSingular($name);
$relationship = Model::getRelationship($this->rowClass, $name);
if(!$relationship instanceof BelongsToRelationship) {
$relationship = false;
}
}
if($relationship !== false) {
return $relationship->selectModelSet($this);
} else {
throw new RecessException('Relationship "' . $name . '" does not exist.', get_defined_vars());
}
}
function update() {
return $this->source->executeStatement($this->sqlBuilder->useAssignmentsAsConditions(false)->update(), $this->sqlBuilder->getPdoArguments());
}
function delete($cascade = true) {
foreach($this as $model) {
$model->delete($cascade);
}
}
}
?>