1: <?php
2:
3: namespace PHPixie\ORM;
4:
5: class Conditions
6: {
7: 8: 9:
10: protected $ormBuilder;
11:
12: public function __construct($ormBuilder)
13: {
14: $this->ormBuilder = $ormBuilder;
15: }
16:
17: public function placeholder($modelName, $defaultOperator = '=', $allowEmpty = true)
18: {
19: $container = $this->container($modelName, $defaultOperator);
20: return new \PHPixie\ORM\Conditions\Condition\Collection\Placeholder($container, $allowEmpty);
21: }
22:
23: public function operator($field, $operator, $values)
24: {
25: return new \PHPixie\ORM\Conditions\Condition\Field\Operator($field, $operator, $values);
26: }
27:
28: public function group()
29: {
30: return new \PHPixie\ORM\Conditions\Condition\Collection\Group();
31: }
32:
33: public function relatedToGroup($relationship)
34: {
35: return new \PHPixie\ORM\Conditions\Condition\Collection\RelatedTo\Group($relationship);
36: }
37:
38: public function in($modelName, $items = array())
39: {
40: return new \PHPixie\ORM\Conditions\Condition\In($modelName, $items);
41: }
42:
43: public function subquery($field, $subquery, $subqueryField)
44: {
45: return new \PHPixie\ORM\Conditions\Condition\Field\Subquery($field, $subquery, $subqueryField);
46: }
47:
48: public function container($modelName, $defaultOperator = '=')
49: {
50: return new \PHPixie\ORM\Conditions\Builder\Container(
51: $this,
52: $this->ormBuilder->maps()->relationship(),
53: $modelName,
54: $defaultOperator
55: );
56: }
57:
58: }
59: