Vous êtes sur la page 1sur 4

Laravel Utilizando Eloquent ORM

Devuelve una coleccin de objetos de todos los usuarios.


$users = User::all();
$users = User::get();

Si buscamos un solo usuario, nos devuelve el modelo User.


$user = User::find(10);
$user = User::all()->first();

Para crear un registro.


$user = new User;
$user->username = "user";
$user->save();

Para actualizar un registro.


$user = User::find(10);
$user->username = "new user";
$user->save();

Para eliminar un registro.


$user = User::find(10);
$user->delete();

Usando where.
$user = User::where("estado","=",1)->find(10);

Para que nos devuelva una instancia de Paginator y pagine cada 10 registros.
$users = User::where("estado","=",1)->paginate(10);

Seleccionamos solo algunas columnas.


$users = User::where("estado","=",1)->select("id","username")->paginate(10);

Si queremos usar alguna funcin de mysql, podemos usar DB::raw().


$users = User::where("estado","=",1)->select(DB::raw("id,username, DATE_FORMAT(create
fecha"))->paginate(10);

Otras funciones.
$users = User::where("estado","=",1)
->whereNotNull('updated_at')
->whereNull('email')
->whereIn('id', [1, 2, 3])
->whereBetween('edad', [1, 30])
->where('username','like','%ad%')
->orderBy('username')
->orderBy('created_at','desc')
->skip(10)->take(5)
->get();
Obtener las consultas generadas
Para ver la consulta SQL que genera usamos DB::getQueryLog() esta funcin devuelve un
array con todas las consultas que se han generado.

En Laravel 4
// En Laravel 4
$log = DB::getQueryLog();
var_dump($log);

En Laravel 5
DB::enableQueryLog();
$log = DB::getQueryLog();
var_dump($log);
// Multiples conexiones
DB::connection('connection1')->enableQueryLog();
DB::connection('connection1')->getQueryLog();
DB::connection('connection2')->enableQueryLog();
DB::connection('connection2')->getQueryLog();

Para que los registros devuelvan en array o formato json.


$users = User::where("estado","=",1)->get()->toArray();
$users = User::where("estado","=",1)->get()->toJson();
$users = User::where("estado","=",1)->first()->toArray();

Si queremos usar un condicional al momento de generar las consultas.


$users = User::where("estado","=",1);
if($buscar)
$users = $users->where('username','like','%ad%');
$users = $users->get();

Usando Join y Left Join


$users = User::join("roles","users.roles_id","=","perfil.id")
->where('users.estado','=',1)
->get();

$users = User::leftJoin("roles","users.roles_id","=","perfil.id")
->where('users.estado','=',1)
->get();

$users = User::join("roles","users.roles_id","=","perfil.id")
->leftJoin('posts',function($join){
$join->on('users.posts_id','=','posts.id')->where('posts.estado','=',1);
})
->where('users.estado','=',1)
->get();

$users = User::join("roles","users.roles_id","=","perfil.id")
->leftJoin(DB::raw("(SELECT * FROM posts where posts.estado=1) as posts"){
$join->on('users.posts_id','=','posts.id');
})
->where('users.estado','=',1)
->get();
Laravel usando Query Builder para generar SQL
DB::table('users')
->whereExists(function ($query) {
$query->select(DB::raw(1))
->from('orders')
->whereRaw('orders.user_id = users.id');
})
->get();

$users = DB::table('orders')
->select('department', DB::raw('SUM(price) as total_sales'))
->groupBy('department')
->havingRaw('SUM(price) > 2500')
->get();

Para insertar un registro.


DB::table('users')->insert(
['username' => 'editor', 'edad' => 20]
);

Para actualizar registros.


DB::table('users')
->where('id', 1)
->update(['edad' => 20]);

Para eliminar registros.


DB::table('users')->delete();
DB::table('users')->where('edad', '<', 20)->delete();

Usando Join y Left Join.


$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get();

$users = DB::table('users')
->leftJoin('posts', 'users.id', '=', 'posts.user_id')
->get();

Actualizar registros entre dos tablas.


DB::table('posts')
->join('users', 'posts.users_id', '=', 'users.id')
->where('estado','=',1)
->update(array('posts.order'=>1));

Transacciones
DB::beginTransaction();
$user = new User;
$user->username = "user";
if($user->save())
DB::commit();
else
DB::rollback();
Procedimientos almacenados
$sql = "call my_procedure(?,?)";
DB::select($sql,array(1,20)); // retorna un array de objetos.
$db = DB::connection();
$stmt = $db->getPdo()->prepare("CALL my_procedure(?,?)");
$stmt->execute(['buscar',5]);
$result = $stmt->fetchAll(PDO::FETCH_CLASS, 'stdClass');

Otras formas de ejecutar consultas en Laravel


$sql = "SELECT * FROM users WHERE estado=? AND edad<?";
DB::select($sql,array(1,20));

$sql = "SELECT * FROM users WHERE estado=? AND edad<?";


DB::statement($sql,array(1,20));

$sql = "SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS `users`;DROP TABLE IF EXISTS


DB::unprepared($sql);

Actualizado el 10 de Setiembre del 2016.

Vous aimerez peut-être aussi