How to alias a table in Laravel Eloquent queries (or using Query Builder)?

后端 未结 6 1838
谎友^
谎友^ 2020-11-28 02:58

Lets say we are using Laravel\'s query builder:

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


        
6条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-11-28 03:39

    Laravel supports aliases on tables and columns with AS. Try

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

    Let's see it in action with an awesome tinker tool

    $ 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'
    //   )
    // )
    

提交回复
热议问题