Laravel - 仅选择“hasMany”中的某些列。询问

时间:2014-11-17 18:28:39

标签: php laravel laravel-4 eloquent

我有一个当前有效的查询,但是,它返回的数据远远多于我需要的数据。

查询

$alerts = Criteria::with('coordinate', 'alerts')
        ->where('user_id', '=', Auth::id())
        ->get();

例如,如果我只想从viewed中选择alerts列,可以在此查询中实现此目的。我已经使用::with来利用Laravel的渴望加载功能。

非常感谢。

1 个答案:

答案 0 :(得分:1)

使用闭包在查询中设置SELECT子句:

$alerts = Criteria::with(['coordinate', 'alerts' => function($query)
{
    $query->select('id', 'coordinate_id', 'viewed');
}])
->where('user_id', '=', Auth::id())
->get();

请记住包含外键,以便Eloquent可以为您正确映射它们。