From c4dc1a5ee2b420cadf73c61fca5447e2d266308f Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Fri, 18 Sep 2015 13:28:38 +0930 Subject: [PATCH] Allow settings to be deleted using LIKE Also give migrations access to the SettingsRepository --- src/Core/Settings/DatabaseSettingsRepository.php | 4 ++-- src/Core/Settings/SettingsRepository.php | 2 +- src/Migrations/Migration.php | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Core/Settings/DatabaseSettingsRepository.php b/src/Core/Settings/DatabaseSettingsRepository.php index 734952d9c..61f972a26 100644 --- a/src/Core/Settings/DatabaseSettingsRepository.php +++ b/src/Core/Settings/DatabaseSettingsRepository.php @@ -45,8 +45,8 @@ class DatabaseSettingsRepository implements SettingsRepository $query->$method(compact('key', 'value')); } - public function delete($key) + public function delete($keyLike) { - $this->database->table('config')->where('key', $key)->delete(); + $this->database->table('config')->where('key', 'like', $keyLike)->delete(); } } diff --git a/src/Core/Settings/SettingsRepository.php b/src/Core/Settings/SettingsRepository.php index abaf3f809..8befbe30a 100644 --- a/src/Core/Settings/SettingsRepository.php +++ b/src/Core/Settings/SettingsRepository.php @@ -19,5 +19,5 @@ interface SettingsRepository public function set($key, $value); - public function delete($key); + public function delete($keyLike); } diff --git a/src/Migrations/Migration.php b/src/Migrations/Migration.php index 8f24024ce..3c8ad4a54 100644 --- a/src/Migrations/Migration.php +++ b/src/Migrations/Migration.php @@ -11,6 +11,7 @@ namespace Flarum\Migrations; use Illuminate\Database\Schema\Builder; +use Flarum\Core\Settings\SettingsRepository; abstract class Migration { @@ -19,8 +20,14 @@ abstract class Migration */ protected $schema; - public function __construct(Builder $builder) + /** + * @var SettingsRepository + */ + protected $settings; + + public function __construct(Builder $schema, SettingsRepository $settings) { - $this->schema = $builder; + $this->schema = $schema; + $this->settings = $settings; } }