我的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方法的全局配置的情况下,将包含记录的数组作为数组而不是对象?
答案 0 :(得分:3)
您不需要运行toArray()。
执行原始查询时,select返回数组,它在docs中声明:
select方法将始终返回结果数组。
static function countOrders($userId)
{
$sql = "SOME CUSTOM-COMPLICATED QUERY";
$result = \DB::select( \DB::raw( $sql ) );
return $result;
}