Browse Source

Allow model id to be used

euromark 12 years ago
parent
commit
e509d2f2d6
2 changed files with 20 additions and 3 deletions
  1. 3 1
      Model/Behavior/GeocoderBehavior.php
  2. 17 2
      Model/MyModel.php

+ 3 - 1
Model/Behavior/GeocoderBehavior.php

@@ -280,7 +280,9 @@ class GeocoderBehavior extends ModelBehavior {
 	 */
 	public function paginateDistanceCount(Model $Model, $conditions = null, $recursive = -1, $extra = array()) {
 		if (!empty($extra['radius'])) {
-			$conditions[] = $extra['distance'] . ' < ' . $extra['radius'] . (!empty($extra['startRadius'])?' AND ' . $extra['distance'] . ' > ' . $extra['startRadius']:'') . (!empty($extra['endRadius'])?' AND ' . $extra['distance'] . ' < ' . $extra['endRadius']:'');
+			$conditions[] = $extra['distance'] . ' < ' . $extra['radius'] .
+				(!empty($extra['startRadius']) ? ' AND ' . $extra['distance'] . ' > ' . $extra['startRadius'] : '') .
+				(!empty($extra['endRadius']) ? ' AND ' . $extra['distance'] . ' < ' . $extra['endRadius'] : '');
 		}
 		if (!empty($extra['group'])) {
 			unset($extra['group']);

+ 17 - 2
Model/MyModel.php

@@ -1487,20 +1487,35 @@ class MyModel extends Model {
 	}
 
 	/**
-	 * Shortcut method to find a specific entry via primary key
+	 * Shortcut method to find a specific entry via primary key.
+	 *
+	 * Either provide the id directly:
+	 *
+	 *   $record = $this->Model->get($id);
+	 *
+	 * Or use
+	 *
+	 *   $this->Model->id = $id;
+	 *   $record = $this->Model->get();
 	 *
 	 * @param mixed $id
 	 * @param string|array $fields
 	 * @param array $contain
 	 * @return mixed
 	 */
-	public function get($id, $fields = array(), $contain = array()) {
+	public function get($id = null, $fields = array(), $contain = array()) {
 		if (is_array($id)) {
 			$column = $id[0];
 			$value = $id[1];
 		} else {
 			$column = 'id';
 			$value = $id;
+			if ($value === null) {
+				$value = $this->id;
+			}
+		}
+		if (!$value) {
+			return array();
 		}
 
 		if ($fields === '*') {