首页 > 解决方案 > 如何将数组作为 Laravel 查询生成器的 SELECT 参数传递

问题描述

如果我有一个 AJAX 调用,它返回一个名为 的数组$selectArray,也就是说[foo,bar,foobar],如何在 Laravel 查询生成器中使用它以便对其进行清理?目前,我有

// Sanitizing Input
// $acceptableSelects is an array of columns in a table. Checks if there are any elements in $selectArray that is invalid
// If the check fails, it return the default array
$sanSelectArray = !array_diff($selectArray, array_keys($accetableSelects)) && count($selectArray) < 8 ? $selectArray : [foo,foo2,foo3]

foreach($sanSelectArray as $ele){
    $query->addSelect('table.' . $ele); // Required since I have a LEFT JOIN
}

这似乎非常不直观。要么有更好的方法来清理输入,要么在SELECT没有多种addSelect()方法的情况下传递 Array,但我找不到任何方法。

标签: phpmysqllaravellaravel-query-builder

解决方案


您可以将数组传递给 addSelect() 方法。例如

$query->addSelect(['my', 'array', 'of', 'columns']);

Laravel 查询构建器测试


推荐阅读