使用Laravel DB对象运行带输入参数的postgresql函数

时间:2013-09-12 15:38:57

标签: postgresql laravel

我有一些postgresql函数,我在表单中运行:

SELECT * FROM pgfunction(1,2,3);

这使我能够对结果进行过滤/排序/分组:

SELECT * FROM pgfunction(1,2,3) WHERE value > 10;

如何使用预处理语句将参数传递给laravel中的postgresql函数,以便在laravel中过滤结果。例如:

DB::table('pgfunction',array(1,2,3))->where('value','>','10');

这可能吗?

1 个答案:

答案 0 :(得分:1)

DB::raw将创建一个原始SQL字符串,但不会将其用作查询。您可能需要使用DB::select()来运行“原始sql”查询。

$fnc = sprintf("pgfunction(%s)", implode(',', array(1,2,3));

DB::select()->from(DB::raw($fnc))->where('value', '>', 10);

注意:这是我未经测试的结果。希望能帮助到你。有关使用该文档的详细信息,请参阅有关使用Raw Expressions的文档。