我正在尝试使用laravel进行选择并返回response-json,我尝试:
public function verificaQuantidadeAnimaisAprovar(){
$quantidade_pets_aprovar = DB::select('SELECT (SELECT SUM(animal_pendente) FROM cademeupet.animais_adocao) +
(SELECT SUM(animal_pendente) FROM cademeupet.animais_encontrados) +
(SELECT SUM(animal_pendente) FROM cademeupet.animais_perdidos)
FROM DUAL '
);
return response()->json($quantidade_pets_aprovar, 201);
}
在bd中,当我运行以下查询时,我得到以下结果:
但是当我在邮递员中运行我的api时,我会收到:
[{“(从cademeupet.animais_adocao中选择SUM(animal_pendente))+ \ r \ n (从cademeupet.animais_encontrados中选择SUM(animal_pendente))+ \ r \ n(从中选择SUM(animal_pendente) cademeupet.animais_perdidos)“:” 36“}]
我只需要数字结果查询:36。
我该如何解决?
答案 0 :(得分:0)
您正在select
方法内部传递整个SQL表达式,该方法旨在执行选择sql操作。
您可能应该使用旨在处理完整sql查询的原始表达式:
public function verificaQuantidadeAnimaisAprovar(){
$quantidade_pets_aprovar = DB::raw('SELECT (SELECT SUM(animal_pendente) FROM cademeupet.animais_adocao) +
(SELECT SUM(animal_pendente) FROM cademeupet.animais_encontrados) +
(SELECT SUM(animal_pendente) FROM cademeupet.animais_perdidos)
FROM DUAL '
);
return response()->json($quantidade_pets_aprovar, 200);
}
注意:我还更改了您回复的http代码,因为201
(已创建)表示已创建某些内容,此处似乎没有发生。 200
(确定)似乎更合适。如果此操作在您的数据库中创建了某些内容,请放回201
。
让我知道它是否对您有帮助:)