A lot of things.
This commit is contained in:
@@ -24,3 +24,40 @@ if( !function_exists( 'section_must_not_be' ) ){
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( !function_exists( 'databaseRoute' ) ){
|
||||
|
||||
function databaseRoute( array $params = [] ): string
|
||||
{
|
||||
$defaults = [
|
||||
'types' => [],
|
||||
'platforms' => [],
|
||||
'genres' => [],
|
||||
'games' => [],
|
||||
'statuses' => [],
|
||||
'authors' => [],
|
||||
'authorsMode' => 'or',
|
||||
'languages' => [],
|
||||
'languagesMode' => 'or',
|
||||
'modifications' => [],
|
||||
'modificationsMode' => 'or',
|
||||
'sort' => 'created_at',
|
||||
'dir' => 'desc',
|
||||
's' => ''
|
||||
];
|
||||
|
||||
$query = array_filter(
|
||||
array_merge($defaults, $params),
|
||||
fn($v,$k) => match(true){
|
||||
is_array($v) => !empty($v),
|
||||
in_array($k, ['authorsMode', 'languagesMode', 'modificationsMode']) => $v !== 'or',
|
||||
$k === 'sort' => $v !== 'created_at',
|
||||
$k === 'dir' => $v !== 'desc',
|
||||
default => $v !== '',
|
||||
},
|
||||
ARRAY_FILTER_USE_BOTH
|
||||
);
|
||||
|
||||
return route('entries.index', $query );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user