En principio, el protocolo a seguir en Laravel es este:
- Modelos en singular (Pedido, Informe, Usuario, ...)
- Tablas en plural y minúsculas (pedidos, informes, usuarios, ...)
- La columna primary key generalmente debe ser "id" (autonumérica).
- Las columnas que relacionan con otras tablas en singular y minúsculas: pedidos.cliente_id, noticias.comentario_id, ...
- Si tienes tablas pivot (tablas que unen dos tablas para hacer relaciones muchos a muchos) deben ponerse en orden alfabético (roles_usuarios, autores_libros, actores_peliculas, peliculas_urls, ...)
Laravel pluraliza bien en inglés, pero en castellano puede no ser tan fino, así que te recomiendo que te plantees programar en inglés.
Todo esto es una recomendación, pues hay muchos automatismos que se basan en lo anterior, si sigues otro criterio, cada vez que definas relaciones entre objetos tendrás que definir que columnas usar.
En tu caso, deberías tener algo como esto:
Código PHP:
// models/Anemometro.php
class Anemometro extends Eloquent {
protected $table = "anenometros";
public static function getLast()
{
return Anemometro::orderBy('id', 'desc')->take(1)->first();
}
}
// routes.php
function get("last", function() {
// Esto devuelve un solo objeto de tipo Anemometro, no un array con una fila
$last = Anemometro::getLast();
});
Haciéndolo así, $last contendrá una instancia de la clase Anemometro en vez de un simple array de objetos estandar.
Por ejemplo, yo tengo esto:
Código PHP:
var_dump(Speaker::orderBy('id', 'desc')->take(1)->get());
var_dump(DB::table('speakers')->orderBy('id', 'desc')->take(1)->get());
Y el resultado es:
Código PHP:
object(IlluminateDatabaseEloquentCollection)[150]
protected 'items' =>
array (size=1)
0 =>
object(Speaker)[148]
////////////////////////////////
array (size=1)
0 =>
object(stdClass)[138]
Como puedes ver, la primera consulta devuelve un objeto de tipo Collection con items de tipo Speaker (con lo que puedes, cuando los recorras, usar sus métodos). Además la Colección se puede ordenar, filtrar, ...
El segundo devuelve un simple array con clases estandar.