Rev 54 | Rev 62 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 54 | Rev 55 | ||
|---|---|---|---|
| Line 25... | Line 25... | ||
| 25 | * used for comparing against the primary key column(s) of
|
25 | * used for comparing against the primary key column(s) of
|
| 26 | * the <code>Table</code>.
|
26 | * the <code>Table</code>.
|
| 27 | *
|
27 | *
|
| 28 | * @type string|array[string]
|
28 | * @type string|array[string]
|
| 29 | */
|
29 | */
|
| 30 | protected $_persistentId = 'id'; |
30 | protected static $_persistentId = 'id'; |
| 31 | 31 | ||
| 32 | /**
|
32 | /**
|
| 33 | * The names of the properties that should be used in database
|
33 | * The names of the properties that should be used in database
|
| 34 | * queries, and their mapping to the columns of
|
34 | * queries, and their mapping to the columns of
|
| 35 | * the <code>Table</code>, if specified (keys are property names,
|
35 | * the <code>Table</code>, if specified (keys are property names,
|
| Line 41... | Line 41... | ||
| 41 | * automatically when saved; if it is in the database,
|
41 | * automatically when saved; if it is in the database,
|
| 42 | * you already have its ID as you searched by it.
|
42 | * you already have its ID as you searched by it.
|
| 43 | *
|
43 | *
|
| 44 | * @type array
|
44 | * @type array
|
| 45 | */
|
45 | */
|
| 46 | protected $_persistentProperties = array(); |
46 | protected static $_persistentProperties = array(); |
| 47 | 47 | ||
| 48 | /**
|
48 | /**
|
| 49 | * Creates a new model object
|
49 | * Creates a new model object
|
| 50 | *
|
50 | *
|
| 51 | * @see AbstractModel::__construct()
|
51 | * @see AbstractModel::__construct()
|
| Line 103... | Line 103... | ||
| 103 | {
|
103 | {
|
| 104 | $a = array(); |
104 | $a = array(); |
| 105 | 105 | ||
| 106 | if ($propertyNames === null) |
106 | if ($propertyNames === null) |
| 107 | {
|
107 | {
|
| - | 108 | $class = \get_class($this); |
|
| 108 | $propertyNames = $this->_persistentProperties; |
109 | $propertyNames = $class::$_persistentProperties; |
| 109 | }
|
110 | }
|
| 110 | 111 | ||
| 111 | foreach ($propertyNames as $propertyName => $columnName) |
112 | foreach ($propertyNames as $propertyName => $columnName) |
| 112 | {
|
113 | {
|
| 113 | if (is_numeric($propertyName)) |
114 | if (is_numeric($propertyName)) |
| Line 131... | Line 132... | ||
| 131 | * if there is no data for this object
|
132 | * if there is no data for this object
|
| 132 | */
|
133 | */
|
| 133 | public function find () |
134 | public function find () |
| 134 | {
|
135 | {
|
| 135 | $class = \get_class($this); |
136 | $class = \get_class($this); |
| 136 | $result = $this->persistentTable->find($this->{$this->_persistentId}); |
137 | $result = $this->persistentTable->find($this->{$class::$_persistentId}); |
| 137 | if ($result) |
138 | if ($result) |
| 138 | {
|
139 | {
|
| 139 | return $this->map($result); |
140 | return $this->map($result); |
| 140 | }
|
141 | }
|
| 141 | 142 | ||
| Line 154... | Line 155... | ||
| 154 | * @see Table::updateOrInsert()
|
155 | * @see Table::updateOrInsert()
|
| 155 | */
|
156 | */
|
| 156 | public function save (array $propertyNames = null) |
157 | public function save (array $propertyNames = null) |
| 157 | {
|
158 | {
|
| 158 | $table = $this->persistentTable; |
159 | $table = $this->persistentTable; |
| - | 160 | $class = \get_class($this); |
|
| 159 | $idPropertyName = $this->_persistentId; |
161 | $idPropertyName = $class::$_persistentId; |
| 160 | 162 | ||
| 161 | $result = $table->updateOrInsert( |
163 | $result = $table->updateOrInsert( |
| 162 | $this->getPropertyArray($propertyNames), |
164 | $this->getPropertyArray($propertyNames), |
| 163 | array( |
165 | array( |
| 164 | $table->id => $this->$idPropertyName |
166 | $table->id => $this->$idPropertyName |
| Line 185... | Line 187... | ||
| 185 | * @see Table::insert()
|
187 | * @see Table::insert()
|
| 186 | */
|
188 | */
|
| 187 | public function insert (array $propertyNames = null) |
189 | public function insert (array $propertyNames = null) |
| 188 | {
|
190 | {
|
| 189 | $table = $this->persistentTable; |
191 | $table = $this->persistentTable; |
| - | 192 | $class = \get_class($this); |
|
| 190 | $idPropertyName = $this->_persistentId; |
193 | $idPropertyName = $class::$_persistentId; |
| 191 | 194 | ||
| 192 | $result = $table->insert($this->getPropertyArray($propertyNames)); |
195 | $result = $table->insert($this->getPropertyArray($propertyNames)); |
| 193 | 196 | ||
| 194 | if ($result && ($lastInsertId = $table->lastInsertId)) |
197 | if ($result && ($lastInsertId = $table->lastInsertId)) |
| 195 | {
|
198 | {
|
| Line 205... | Line 208... | ||
| 205 | * @return bool
|
208 | * @return bool
|
| 206 | * @see Table::delete()
|
209 | * @see Table::delete()
|
| 207 | */
|
210 | */
|
| 208 | public function delete () |
211 | public function delete () |
| 209 | {
|
212 | {
|
| - | 213 | $class = \get_class($this); |
|
| 210 | return $this->persistentTable->delete($this->{$this->_persistentId}); |
214 | return $this->persistentTable->delete($this->{$class::$_persistentId}); |
| 211 | }
|
215 | }
|
| 212 | }
|
216 | }
|