如何将数组作为 SELECT 参数传递给 Laravel 查询生成器
How to pass array as SELECT params for Laravel Query Builder
如果我有一个 AJAX 调用 returns 一个名为 $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()
方法,但我找不到任何方法。
您可以将数组传递给 addSelect() 方法。
例如
$query->addSelect(['my', 'array', 'of', 'columns']);
如果我有一个 AJAX 调用 returns 一个名为 $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()
方法,但我找不到任何方法。
您可以将数组传递给 addSelect() 方法。 例如
$query->addSelect(['my', 'array', 'of', 'columns']);