"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como criar alias de tabelas no Laravel Eloquent ORM para maior flexibilidade e legibilidade?

Como criar alias de tabelas no Laravel Eloquent ORM para maior flexibilidade e legibilidade?

Publicado em 2024-11-06
Navegar:216

How to Alias Tables in Laravel Eloquent ORM for Enhanced Flexibility and Readability?

Aliasing Tables in Laravel's Eloquent Queries: Beyond DB::table

No Eloquent ORM do Laravel, você pode interagir com o banco de dados usando uma abordagem limpa e orientada a objetos. No entanto, às vezes você pode encontrar consultas que exigem mais flexibilidade, como tabelas de alias.

O desafio

Considere uma consulta usando o Query Builder do Laravel:

$users = DB::table('really_long_table_name')
    ->select('really_long_table_name.id')
    ->get();

Esta consulta buscaria a coluna id de uma tabela com um nome detalhado. Felizmente, você pode criar um alias para a tabela na consulta para melhorar a legibilidade e reduzir a digitação.

Solução de alias do Laravel

O Laravel suporta aliases de tabela usando a palavra-chave AS. Veja como você pode aplicar esta solução:

$users = DB::table('really_long_table_name AS t')
    ->select('t.id AS uid')
    ->get();

Ao alias a tabela como t, agora você pode se referir a colunas usando o t. prefixo, tornando a consulta mais concisa e legível.

Exemplo prático

Para ilustrar o uso, considere o seguinte exemplo de funileiro:

Schema::create('really_long_table_name', function($table) {
    $table->increments('id');
});
DB::table('really_long_table_name')->insert(['id' => null]);
$result = DB::table('really_long_table_name AS t')->select('t.id AS uid')->get();

dd($result);

A saída mostraria um objeto com uma propriedade uid contendo o ID inserido. Isso demonstra o uso eficaz de aliases de tabela nas consultas Eloquent do Laravel.

Declaração de lançamento Este artigo foi reimpresso em: 1729386977 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3