如何在Laravel 5.1中使用Eloquent进行原始查询的多重选择

时间:2016-02-10 09:13:42

标签: laravel eloquent laravel-5.1

我做了一个查询,该查询获取表格的所有列数据和另一个自定义列别名为'距离'。现在查询看起来像这样:

$restaurants = DB::table(DB::raw('restaurants'))
    ->select(
        'restaurants.id',
        'restaurants.name',
        'restaurants.about',
        'restaurants.contact_details',
        'restaurants.address',
        'restaurants.city',
        'restaurants.lat',
        'restaurants.long',
        'restaurants.cuisines',
        DB::raw(*some computation here* . " as distance")
    )
    ->get();

基本上,我的查询在SQL中应如下所示:

SELECT *, *some computation here* as distance FROM restaurants

有没有办法使用Eloquent简化这个?现在我需要手动指定所有列,以便我可以添加DB :: raw select语句。

1 个答案:

答案 0 :(得分:4)

这应该有效:

$restaurants = DB::table('restaurants')
    ->select(
        'restaurants.*',
        DB::raw(*some computation here* . " as distance")
    )
    ->get();