本文整理汇总了PHP中ActiveRecord::get方法的典型用法代码示例。如果您正苦于以下问题:PHP ActiveRecord::get方法的具体用法?PHP ActiveRecord::get怎么用?PHP ActiveRecord::get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ActiveRecord
的用法示例。
在下文中一共展示了ActiveRecord::get方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: paginate_by_sql
/**
* Paginador por sql
*
* @param string $model nombre del modelo
* @param string $sql consulta sql
*
* page: numero de pagina a mostrar (por defecto la pagina 1)
* per_page: cantidad de elementos por pagina (por defecto 10 items por pagina)
*
*
* Retorna un PageObject que tiene los siguientes atributos:
* next: numero de pagina siguiente, si no hay pagina siguiente entonces es false
* prev: numero de pagina anterior, si no hay pagina anterior entonces es false
* current: numero de pagina actual
* total: total de paginas que se pueden mostrar
* items: array de items de la pagina
* count: Total de registros
*
* Ejemplos:
* $page = paginate_by_sql('usuario', 'SELECT * FROM usuario' , 'per_page: 5', "page: $page_num");
*
* @return object
**/
public static function paginate_by_sql($model, $sql)
{
$params = Util::getParams(func_get_args());
$page_number = isset($params['page']) ? $params['page'] : 1;
$per_page = isset($params['per_page']) ? $params['per_page'] : 10;
$start = $per_page * ($page_number - 1);
/**
* Si es una cadena, instancio el modelo
**/
if (is_string($params[0])) {
$m = Util::camelcase($params[0]);
$model = ActiveRecord::get($m);
}
/**
* Instancia del objeto contenedor de pagina
**/
$page = new stdClass();
/**
* Cuento las apariciones atraves de una tabla derivada
**/
$n = $model->count_by_sql("SELECT COUNT(*) FROM ({$sql}) AS t");
$page->items = $model->find_all_by_sql($model->limit($sql, "offset: {$start}", "limit: {$per_page}"));
/**
* Se efectuan los calculos para las paginas
**/
$page->next = $start + $per_page < $n ? $page_number + 1 : false;
$page->prev = $page_number > 1 ? $page_number - 1 : false;
$page->current = $page_number;
$page->total = $n % $per_page ? (int) ($n / $per_page) + 1 : $n / $per_page;
$page->count = $n;
$page->per_page = $per_page;
return $page;
}
示例2: select_tag
/**
* Crea una lista SELECT
*
* @param string $name
* @param array, string $data
*
* selected: opcion seleccionada
* include_blank: incluir opcion con valor nulo, se muestra en la opcion el texto aqui indicado
*
* Para el select basado en activerecord:
* option: lista de campos separados por coma para colocar en la opcion (por defecto es el id)
* separator: separador de valores para los campos de la opcion
* value: indica el campo que servira de valor para la opcion (por defecto es el id)
* conditions: condiciones de busqueda
*
* @return string
*
* Ejemplos:
* select_tag('marca_id', 'Marca', 'conditions: tipo="2"', 'option: nombre')
* select_tag('marca_id', 'Marca', 'SELECT * FROM marca WHERE tipo="2"', 'option: nombre')
* select_tag('sexo', array('M' => 'Masculino', 'F' => 'Femenino'), 'include_blank: Seleccione uno...')
*/
function select_tag($name, $data = array())
{
$params = is_array($name) ? $name : Util::getParams(func_get_args());
/**
* Obtengo id, name y value
**/
$params = array_merge(get_id_and_name($params[0]), $params);
if (!isset($params['selected'])) {
$value = get_value_from_action($params[0]);
if ($value) {
$params['selected'] = $value;
}
}
if (!isset($params[1])) {
return xhtml_start_tag('select', $params);
}
if (isset($params['selected'])) {
$selected = $params['selected'];
unset($params['selected']);
}
if (isset($params['separator'])) {
$separator = $params['separator'];
unset($params['separator']);
} else {
$separator = '';
}
$options = '';
if (isset($params['include_blank'])) {
$options .= "\t" . xhtml_tag('option', array('value' => ''), "content: {$params['include_blank']}");
unset($params['include_blank']);
}
if (is_array($params[1])) {
if (isset($params[1][0]) && is_object($params[1][0])) {
if (isset($params['option'])) {
$fields = array_map('trim', explode(',', $params['option']));
unset($params['option']);
} else {
$fields = array('id');
}
foreach ($params[1] as $item) {
$value = $item->primary_key[0];
$vals = array();
foreach ($fields as $option) {
array_push($vals, $item->{$option});
}
$k = $item->{$value};
$v = implode($vals, $separator);
if (isset($selected) && $selected == $k) {
$options .= "\t" . option_tag($k, $v, 'selected: selected');
} else {
$options .= "\t" . option_tag($k, $v);
}
}
} else {
foreach ($params[1] as $k => $v) {
if (isset($selected) && $selected == $k) {
$options .= option_tag($k, $v, 'selected: selected');
} else {
$options .= option_tag($k, $v);
}
}
}
} elseif (is_string($params[1])) {
if (isset($params['option'])) {
$fields = array_map('trim', explode(',', $params['option']));
unset($params['option']);
} else {
$fields = array('id');
}
/**
* combo creado a partir de un modelo
**/
$m = ActiveRecord::get($params[1]);
if (isset($params['value'])) {
$value = $params['value'];
unset($params['value']);
} else {
$m2 = clone $m;
//.........这里部分代码省略.........
示例3: authenticate
/**
* Autentica un usuario usando el adaptador
*
* @return boolean
*/
public function authenticate()
{
$where_condition = array();
foreach ($this->compare_attributes as $field => $value) {
$value = addslashes($value);
$where_condition[] = "{$field} = '{$value}'";
}
$result = Load::model($this->class)->count(join(" AND ", $where_condition));
if ($result) {
$model = ActiveRecord::get($this->class)->find_first(join(" AND ", $where_condition));
$identity = array();
foreach ($model->fields as $field) {
/**
* Trata de no incluir en la identidad el password del usuario
*/
if (!in_array($field, array('password', 'clave', 'contrasena', 'passwd', 'pass'))) {
$identity[$field] = $model->{$field};
}
}
$this->identity = $identity;
}
return $result;
}