Subversion Repositories PHPX

Rev

Rev 65 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 65 Rev 67
Line 90... Line 90...
90
                $class::$_persistentTable = $table;
90
                $class::$_persistentTable = $table;
91
        }
91
        }
92
  }
92
  }
93
93
94
  /**
94
  /**
-
 
95
   * Returns an array containing the property-column mapping.
-
 
96
   *
-
 
97
   * @param array $propertyNames = null
-
 
98
   *   Names of the properties that should be included.
-
 
99
   *   The default is to include all persistent properties.
-
 
100
   * @return array
-
 
101
   */
-
 
102
  public static function getPersistentMapping (array $propertyNames = null)
-
 
103
  {
-
 
104
    $a = array();
-
 
105
-
 
106
        $persistent_properties = static::$_persistentProperties;
-
 
107
-
 
108
        if ($propertyNames === null)
-
 
109
        {
-
 
110
                $propertyNames = $persistent_properties;
-
 
111
        }
-
 
112
-
 
113
        foreach ($propertyNames as $property_name)
-
 
114
        {
-
 
115
          if (!array_key_exists($property_name, $persistent_properties))
-
 
116
          {
-
 
117
                        $column_name = $property_name;
-
 
118
          }
-
 
119
          else
-
 
120
          {
-
 
121
            $column_name = $persistent_properties[$property_name];
-
 
122
          }
-
 
123
-
 
124
                $a[$property_name] = $column_name;
-
 
125
        }
-
 
126
-
 
127
        return $a;
-
 
128
  }
-
 
129
-
 
130
  /**
95
   * Returns an array for database queries containing the
131
   * Returns an array for database queries containing the
96
   * property values of this object, using the specified
132
   * property values of this object, using the specified
97
   * property-to-column mapping.
133
   * property-to-column mapping.
98
   *
134
   *
99
   * @param array $propertyNames = null
135
   * @param array $propertyNames = null
Line 128... Line 164...
128
   * Finds the record for the model object in the table, fills
164
   * Finds the record for the model object in the table, fills
129
   * the object with missing data, and returns the result.
165
   * the object with missing data, and returns the result.
130
   *
166
   *
131
   * @param mixed $id = null
167
   * @param mixed $id = null
132
   *   The ID of the object to find.  If <code>null</code> (default),
168
   *   The ID of the object to find.  If <code>null</code> (default),
133
   *   the object is search for by its current ID.
169
   *   the object is searched for by its current ID.
134
   * @see Table::find(Model)
-
 
135
   * @return Model|null
170
   * @return Model|null
136
   *   This object filled with missing data, or <code>null</code>
171
   *   This object filled with missing data, or <code>null</code>
137
   *   if there is no data for this object
172
   *   if there is no data for this object
138
   * @see Table::find(Model)
173
   * @see Table::find(int)
139
   */
174
   */
140
  public function find ($id = null)
175
  public function find ($id = null)
141
  {
176
  {
142
        $class = \get_class($this);
177
        $class = \get_class($this);
143
        if ($id === null)
178
        if ($id === null)
Line 158... Line 193...
158
    }
193
    }
159
194
160
    return null;
195
    return null;
161
  }
196
  }
162
197
-
 
198
  /**
-
 
199
   * Finds the records for model objects in the table by value,
-
 
200
   * and returns the result.
-
 
201
   *
-
 
202
   * @param string $name
-
 
203
   *   Name of the property to search for.
-
 
204
   * @param mixed $value = null
-
 
205
   *   The property value to find.  If <code>null</code>,
-
 
206
   *   the current value of the specified property is used.
-
 
207
   *   (To search for null, you need to make sure that the
-
 
208
   *   current property value is <code>null</code>, which is
-
 
209
   *   the PHP default.)
-
 
210
   * @return array[Model]|null
-
 
211
   *   Model objects, or <code>null</code> if there is no data
-
 
212
   *   for this property and value
-
 
213
   * @see Table::select(Model)
-
 
214
   */
-
 
215
  public function findByProperty ($name, $value = null)
-
 
216
  {
-
 
217
    $class = \get_class($this);
-
 
218
        $mapping = $class::getPersistentMapping(array($name));
-
 
219
-
 
220
        if ($value === null)
-
 
221
        {
-
 
222
          $value = $this->$name;
-
 
223
        }
-
 
224
-
 
225
    $results = $this->persistentTable->select(null,
-
 
226
      array($mapping[$name] => $value));
-
 
227
-
 
228
    if ($results)
-
 
229
    {
-
 
230
        return array_map(array($this, 'map'), $results);
-
 
231
    }
-
 
232
-
 
233
    return null;
-
 
234
  }
-
 
235
163
  /**
236
  /**
164
   * Saves the model object in the table
237
   * Saves the model object in the table
165
   *
238
   *
166
   * @param array $propertyNames = null
239
   * @param array $propertyNames = null
167
   *   Names of the properties whose values should be saved
240
   *   Names of the properties whose values should be saved