1 | <?php |
||
22 | trait JoinComponentTrait |
||
23 | { |
||
24 | /** |
||
25 | * @var array $joinTables |
||
26 | */ |
||
27 | private $joinTables = []; |
||
28 | |||
29 | /** |
||
30 | * @return TableFactoryInterface |
||
31 | */ |
||
32 | abstract protected function getTableFactory(); |
||
33 | /** |
||
34 | * @return BuilderInterface |
||
35 | */ |
||
36 | abstract public function getQueryBuilder(); |
||
37 | |||
38 | /** |
||
39 | * @param string $joinType |
||
40 | * @param mixed $table |
||
41 | * @param string|null $alias |
||
42 | * @param string|null $joinOn |
||
43 | * |
||
44 | * @return AbstractTable |
||
45 | */ |
||
46 | 3 | private function doJoin($joinType, $table, $alias = null, $joinOn = null) |
|
61 | |||
62 | /** |
||
63 | * @param mixed $table |
||
64 | * @param string|null $alias |
||
65 | * @param string|null $joinOn |
||
66 | * |
||
67 | * @return AbstractTable |
||
68 | */ |
||
69 | 3 | public function join($table, $alias = null, $joinOn = null) |
|
70 | { |
||
71 | 3 | return $this->doJoin(JoinType::JOIN, $table, $alias, $joinOn); |
|
72 | } |
||
73 | |||
74 | /** |
||
75 | * @param mixed $table |
||
76 | * @param string|null $alias |
||
77 | * @param string|null $joinOn |
||
78 | * |
||
79 | * @return AbstractTable |
||
80 | */ |
||
81 | 1 | public function straightJoin($table, $alias = null, $joinOn = null) |
|
82 | { |
||
83 | 1 | return $this->doJoin(JoinType::STRAIGHT_JOIN, $table, $alias, $joinOn); |
|
84 | } |
||
85 | |||
86 | /** |
||
87 | * @param mixed $table |
||
88 | * @param string|null $alias |
||
89 | * @param string|null $joinOn |
||
90 | * |
||
91 | * @return AbstractTable |
||
92 | */ |
||
93 | 1 | public function crossJoin($table, $alias = null, $joinOn = null) |
|
97 | |||
98 | /** |
||
99 | * @param mixed $table |
||
100 | * @param string|null $alias |
||
101 | * @param string|null $joinOn |
||
102 | * |
||
103 | * @return AbstractTable |
||
104 | */ |
||
105 | 1 | public function leftJoin($table, $alias = null, $joinOn = null) |
|
109 | |||
110 | /** |
||
111 | * @param mixed $table |
||
112 | * @param string|null $alias |
||
113 | * @param string|null $joinOn |
||
114 | * |
||
115 | * @return AbstractTable |
||
116 | */ |
||
117 | 1 | public function rightJoin($table, $alias = null, $joinOn = null) |
|
118 | { |
||
119 | 1 | return $this->doJoin(JoinType::RIGHT_JOIN, $table, $alias, $joinOn); |
|
120 | } |
||
121 | |||
122 | /** |
||
123 | * @param mixed $table |
||
124 | * @param string|null $alias |
||
125 | * @param string|null $joinOn |
||
126 | * |
||
127 | * @return AbstractTable |
||
128 | */ |
||
129 | 1 | public function innerJoin($table, $alias = null, $joinOn = null) |
|
133 | |||
134 | /** |
||
135 | * @return array |
||
136 | */ |
||
137 | 1 | public function getJoinTables() |
|
141 | } |
In PHP, under loose comparison (like
==
, or!=
, orswitch
conditions), values of different types might be equal.For
string
values, the empty string''
is a special case, in particular the following results might be unexpected: