Version 8, last updated by anthemfor182 at August 31, 2007 21:32 UTC

25.1.4 find_first

Sintaxis

find_first([integer $id], [“conditions: ...”], [“order: ...”], [“limit: ...],
[“columns: ...”])

El método "find_first" devuelve el primer registro de una entidad ó la primera ocurrencia de acuerdo a unos criterios de búsqueda ú ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este metodo es muy flexible y puede ser usado de muchas formas:


Ejemplo

  1. $this->Usuarios->find_first("conditions: estado='A'","order: fecha desc");

En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de este se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito ó false en caso contrario.

Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma:

Ejemplo

  1. $this->Usuarios->find_first(123);

Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito ó false en caso contrario .

Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para estro podemos forzar que se devuelva uno solo mediante el parámetro limit, de esta forma:

Ejemplo

  1. $this->Usuarios->find_first("conditions: estado='A' ","limit: 1");

Cuando queremos consultar solo algunos de los atributos de la entidad podemos utilizar el parámetro columns así:

Ejemplo

  1. $this->Usuarios->find_first("columns: nombre, estado");

Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así:

Ejemplo

  1. $Usuarios->find_first("estado='A'");

De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado:

Ejemplo

  1. $this->Usuarios->find_first("id='123'");
  2. $this->Usuarios->find_first(123);

Regresar al indice