1. ホーム
  2. php

[解決済み] Laravel Eloquentクエリ(またはクエリビルダーの使用)でテーブルのエイリアスを作成する方法は?

2022-04-21 09:49:43

質問

Laravelのクエリビルダを使用しているとします。

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

このSQLと同等のものを探しています。

really_long_table_name AS short_name

これは、selectやwhereをたくさん入力しなければならないときに特に役立ちます(または、通常はselectのカラムエイリアスにエイリアスを含めて、結果の配列で使用されます)。テーブルのエイリアスがないと、さらに多くのタイピングが必要になり、すべてが読みづらくなります。laravelのドキュメントに答えが見つからないのですが、何かアイデアはありますか?

解決方法は?

Laravelは、テーブルとカラムのエイリアスをサポートし AS . 試す

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

では、実際に素晴らしい tinker ツール

php アーティザン ティンカー
[1] > Schema::create('really_long_table_name', function($table) {$table->increments('id');});
// NULL
[2] > DB::table('really_long_table_name')->insert(['id' => null]);
// 真
[3] > DB::table('really_long_table_name AS t')->select( t.id AS uid')->get().
// array(
// 0 => object(stdClass)()
// 'uid' => '1'.
// )
// )