Laravel5 Eloquent自定义方法返回数组

时间:2015-04-16 12:05:16

标签: laravel eloquent

我的User模型中有一个静态方法,它计算一些东西,我使用的是原始语句:

static function countOrders($userId)
{
   $sql = "SOME CUSTOM-COMPLICATED QUERY";
   $result = \DB::select( \DB::raw( $sql ) );
   return $result; // <-- toArray() ? returns Exception!
}

我控制器的某个地方:

$orders = User::countOrders(*USER-ID*);

如何在不修改FETCH方法的全局配置的情况下,将包含记录的数组作为数组而不是对象?

1 个答案:

答案 0 :(得分:3)

您不需要运行toArray()。

执行原始查询时,select返回数组,它在docs中声明:

  

select方法将始终返回结果数组。

static function countOrders($userId)
{
   $sql = "SOME CUSTOM-COMPLICATED QUERY";
   $result = \DB::select( \DB::raw( $sql ) );
   return $result;
}