Contao\FilesModel::findMultipleByUuidsAndExtensions PHP Method

findMultipleByUuidsAndExtensions() public static method

Find multiple files by UUID and a list of extensions
public static findMultipleByUuidsAndExtensions ( array $arrUuids, array $arrExtensions, array $arrOptions = [] ) : Collection | FilesModel[] | FilesModel | null
$arrUuids array An array of file UUIDs
$arrExtensions array An array of file extensions
$arrOptions array An optional options array
return Contao\Model\Collection | FilesModel[] | FilesModel | null A collection of models or null of there are no matching files
    public static function findMultipleByUuidsAndExtensions($arrUuids, $arrExtensions, array $arrOptions = array())
    {
        if (!is_array($arrUuids) || empty($arrUuids) || !is_array($arrExtensions) || empty($arrExtensions)) {
            return null;
        }
        foreach ($arrExtensions as $k => $v) {
            if (!preg_match('/^[a-z0-9]{2,5}$/i', $v)) {
                unset($arrExtensions[$k]);
            }
        }
        $t = static::$strTable;
        foreach ($arrUuids as $k => $v) {
            // Convert UUIDs to binary
            if (\Validator::isStringUuid($v)) {
                $v = \StringUtil::uuidToBin($v);
            }
            $arrUuids[$k] = "UNHEX('" . bin2hex($v) . "')";
        }
        if (!isset($arrOptions['order'])) {
            $arrOptions['order'] = "{$t}.uuid!=" . implode(", {$t}.uuid!=", $arrUuids);
        }
        return static::findBy(array("{$t}.uuid IN(" . implode(",", $arrUuids) . ") AND {$t}.extension IN('" . implode("','", $arrExtensions) . "')"), null, $arrOptions);
    }