protected static function find_one($class_name, $id, $options) { $conditions = ''; if (isset($options['conditions'])) { $conditions = ' AND (' . SqlBuilder::sanitize_sql_for_conditions($options['conditions']) . ')'; } $primary_key = self::primary_key_for($class_name); $table_columns = self::$connection->columns(self::get_table_name($class_name)); $options['conditions'] = self::quoted_table_name($class_name) . '.' . self::$connection->quote_column_name($primary_key) . ' = ' . self::$connection->quote($id, $table_columns[$primary_key]) . $conditions; if ($result = self::find_all($class_name, $options)) { return $result[0]; } else { throw new RecordNotFound("Couldn't find {$class_name} with ID={$id}{$conditions}"); } }
protected function prepare_conditions(&$options) { $conditions = ''; if (isset($options['conditions'])) { $conditions .= '(' . SqlBuilder::sanitize_sql_for_conditions($options['conditions']) . ')'; } if (isset($this->association_options['conditions'])) { if (!empty($conditions)) { $conditions .= ' AND '; } $conditions .= '(' . SqlBuilder::sanitize_sql_for_conditions($this->association_options['conditions']) . ')'; } $options['conditions'] = $conditions; }