Skip to content

Commit 63d080e

Browse files
author
quentin.schmick
committed
Added ` escapes around dynamic field names for db::raw calls
1 parent 2cb3717 commit 63d080e

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/BaseFeatures/Filters/BaseFilter.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,9 @@ public function toArray() : array
146146
'key' => $this->key(),
147147
];
148148
}
149+
150+
protected static function escapeFieldName(string $field) : string
151+
{
152+
return '`' . implode('`.`', explode('.', $field)) . '`';
153+
}
149154
}

src/BaseFeatures/Filters/ContainsFilter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function apply(Builder $builder, array $options = []) : Builder
2828
*/
2929
public static function build(Builder $builder, mixed $field, mixed $value, string $action = 'where') : Builder
3030
{
31-
return $builder->$action(DB::raw('COALESCE(' . $field . ", '')"), 'like', '%' . $value . '%');
31+
return $builder->$action(DB::raw('COALESCE(' . self::escapeFieldName($field) . ", '')"), 'like', '%' . $value . '%');
3232
}
3333

3434
/**

src/BaseFeatures/Filters/DoesNotContainFilter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function apply(Builder $builder, array $options = []) : Builder
2828
*/
2929
public static function build(Builder $builder, mixed $field, mixed $value, string $action = 'where') : Builder
3030
{
31-
return $builder->$action(DB::raw('COALESCE(' . $field . ", '')"), 'not like', '%' . $value . '%');
31+
return $builder->$action(DB::raw('COALESCE(' . self::escapeFieldName($field) . ", '')"), 'not like', '%' . $value . '%');
3232
}
3333

3434
/**

0 commit comments

Comments
 (0)