If I have an AJAX call that returns an array called $selectArray
, which is [foo,bar,foobar]
, how do utilize it in a Laravel Query Builder so that it's sanitized? Currently, I have
// 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
}
It seems awfully unintuitive. Either there are better ways sanitizing the input or passing Array as SELECT
without having multiple addSelect()
methods, but I can't find any.
You can pass an array to the addSelect() method. e.g.
$query->addSelect(['my', 'array', 'of', 'columns']);