Skip to content

Commit 1c60878

Browse files
committed
Fix Setting Media type test error
1 parent 6beaaad commit 1c60878

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

Diff for: Modules/Setting/Entities/Setting.php

+6
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,10 @@ class Setting extends Model
1313
public $translatedAttributes = ['value', 'description'];
1414
protected $fillable = ['name', 'value', 'description', 'isTranslatable', 'plainValue'];
1515
protected $table = 'setting__settings';
16+
17+
public function hasMedia(): boolean
18+
{
19+
$value = json_decode($this->plainValue, true);
20+
return is_array($value) && isset($value['media_single']) && $setting->files->count();
21+
}
1622
}

Diff for: Modules/Setting/Repositories/Eloquent/EloquentSettingRepository.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ public function createOrUpdate($settings)
5050

5151
foreach ($settings as $settingName => $settingValues) {
5252
// Check if media exists
53-
if(in_array($settingName, ['medias_single', 'medias_multiple'])) {
53+
if($settingName == 'medias_single') {
5454
// Get first key of values (Original settingName)
55-
foreach ($settingValues as $key => $value) {
56-
$normalisedValue = [ $settingName => [$key => $value] ];
55+
foreach ($settingValues as $key => $mediaId) {
56+
$normalisedValue = [ 'media_single' => $mediaId ];
5757
$settingName = $key;
5858
break;
5959
}

Diff for: Modules/Setting/Support/Settings.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function get($name, $locale = null, $default = null)
3636
return is_null($default) ? $defaultFromConfig : $default;
3737
}
3838

39-
if($media = $setting->files()->first()) {
39+
if($setting->hasMedia() && $media = $setting->files->first()) {
4040
return $media->path;
4141
}
4242

Diff for: Modules/Setting/Tests/BaseSettingTest.php

+4
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,9 @@ private function resetDatabase()
7878
$this->artisan('migrate', [
7979
'--database' => 'sqlite',
8080
]);
81+
$this->artisan('migrate', [
82+
'--database' => 'sqlite',
83+
'--path' => 'Modules/Media/Database/Migrations',
84+
]);
8185
}
8286
}

0 commit comments

Comments
 (0)