使用Laravel 5从原始SQL语句中获取结果

时间:2017-12-14 15:06:53

标签: php laravel

我正在尝试用PDO和Laravel 5.5做一些声明。

{
  const original = window.fetch
  window.fetch = function(...args) {
    if (args[0] == '/certain_endpoint') { 
       return new Promise(res => {
         setTimeout(() => res(original(...args)), 1000);
       });
     }
     return original(...args);
  };
 }

结果是:

public static function getNbCoach() {
    return DB::select('SELECT COUNT(*) FROM utilisateur WHERE id_statut = 2 AND actif = true');
}

如何获取结果(在本例中为0)而不是数组。

我已经尝试了但不起作用。

array:1 [▼
   0 => {#186 ▼
      +"count": 0
   }
]

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

->get()总是返回一个多维数组。有两种方法可以做到这一点:

改为使用->first()

    return DB::select('SELECT COUNT(*) FROM utilisateur WHERE id_statut = 2 AND actif = true')->first();

<击>

或者使用QueryBuilder方法,它将返回实际数字而不是对象或数组:

    return DB::table('utilisateur')
      ->where('id_statut', 2)
      ->where('actif', true)
      ->count();

编辑:测试后,第一种方法不起作用,但第二种方法可以正常工作。