Este enunciado fue evaluado por nuestros expertos para asegurar la exactitud de nuestro tutorial.
Solución:
Laravel admite alias en tablas y columnas con AS
. Probar
$users = DB::table('really_long_table_name AS t')
->select('t.id AS uid')
->get();
Veámoslo en acción con un increíble tinker
herramienta
$ php artisan tinker [1] > Schema::create('really_long_table_name', function($table) $table->increments('id');); // NULL [2] > DB::table('really_long_table_name')->insert(['id' => null]); // true [3] > DB::table('really_long_table_name AS t')->select('t.id AS uid')->get(); // array( // 0 => object(stdClass)( // 'uid' => '1' // ) // )
Para usar alias en modelos elocuentes, modifique su código de esta manera:
Item
::from( 'items as items_alias' )
->join( 'attachments as att', DB::raw( 'att.item_id' ), '=', DB::raw( 'items_alias.id' ) )
->select( DB::raw( 'items_alias.*' ) )
->get();
Esto agregará automáticamente la tabla prefix a nombres de tablas y devuelve una instancia de Items
modelo. no es un resultado de consulta simple. agregando DB::raw
evita que laravel agregue prefijos de tabla a los alias.
Así es como uno puede hacerlo. Daré un ejemplo con la unión para que quede súper claro para alguien.
$products = DB::table('products AS pr')
->leftJoin('product_families AS pf', 'pf.id', '=', 'pr.product_family_id')
->select('pr.id as id', 'pf.name as product_family_name', 'pf.id as product_family_id')
->orderBy('pr.id', 'desc')
->get();
Espero que esto ayude.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)