我正在尝试使用 PDO 和 Laravel 5.5 做一些声明。
public static function getNbCoach() {
return DB::select('SELECT COUNT(*) FROM utilisateur WHERE id_statut = 2 AND actif = true');
}
结果是:
array:1 [▼
0 => {#186 ▼
+"count": 0
}
]
我怎样才能得到结果(在本例中为 0)而不是数组。
我已经尝试过了,但不起作用。
public static function getNbCoach() {
return DB::select('SELECT COUNT(*) FROM utilisateur WHERE id_statut = 2 AND actif = true')->get();
}
public static function getNbCoach() {
return DB::select('SELECT COUNT(*) FROM utilisateur WHERE id_statut = 2 AND actif = true')[0];
}
谢谢你的帮助!
最佳答案
->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();
修改:经测试,第一种方法不行,第二种方法可以。
关于php - 使用 Laravel 5 从原始 SQL 语句获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47816503/