Skip to content

Commit b5ebec7

Browse files
committed
fix media process and hasOne
1 parent 97825d8 commit b5ebec7

File tree

5 files changed

+40
-15
lines changed

5 files changed

+40
-15
lines changed

Config/config.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

33
return [
4-
'excel_import' => false,
5-
'excel_export' => false
4+
'excel_import' => true,
5+
'excel_export' => true
66
];

Services/Resource/Concerns/Actions/Show.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public function unsetShowData($record): void
115115
foreach($this->rows() as $row) {
116116
if (($row->vue === 'ViltHasOne.vue') && !empty($row->relation)) {
117117
$record->{$row->name} = $record->{$row->relation};
118-
unset($record->{$row->name});
118+
unset($record->{$row->relation});
119119
}
120120
}
121121
}

Services/Resource/Concerns/Process/Media.php

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace Modules\Base\Services\Resource\Concerns\Process;
44

55
use Illuminate\Http\Request;
6+
use Illuminate\Support\Facades\File;
7+
use Illuminate\Support\Str;
68

79
trait Media
810
{
@@ -26,18 +28,20 @@ public function processMediaOnUpdate(Request $request, $record): void
2628
foreach ($this->rows() as $field) {
2729
if (($field->vue === 'ViltMedia.vue')) {
2830
if ($request->{$field->name} && is_array($request->{$field->name})) {
29-
$hasNewMedia = false;
30-
foreach ($request->{$field->name} as $item) {
31-
if ($item->getClientOriginalName() !== 'blob') {
32-
$hasNewMedia = true;
33-
}
34-
}
35-
if ($hasNewMedia) {
36-
$record->clearMediaCollection($field->name);
37-
foreach ($request->{$field->name} as $item) {
38-
$record->addMedia($item)
39-
->preservingOriginal()
40-
->toMediaCollection($field->name);
31+
$record->clearMediaCollection($field->name);
32+
foreach ($request->{$field->name} as $key=>$item) {
33+
if(!is_string($item)){
34+
if($item->getClientOriginalName() === 'blob'){
35+
$record->addMedia($item)
36+
->usingFileName(strtolower(Str::random(10).'_'.$key.'.'.$item->extension()))
37+
->preservingOriginal()
38+
->toMediaCollection($field->name);
39+
}
40+
else {
41+
$record->addMedia($item)
42+
->preservingOriginal()
43+
->toMediaCollection($field->name);
44+
}
4145
}
4246
}
4347
}

Services/Rows/Color.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
class Color extends Base
88
{
9+
910
public string $vue = 'ViltColor.vue';
1011

1112
/**

Services/Rows/Icon.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace Modules\Base\Services\Rows;
4+
5+
use Modules\Base\Services\Rows\Abstracts\Base;
6+
7+
class Icon extends Base
8+
{
9+
10+
public string $vue = 'ViltIcon.vue';
11+
12+
/**
13+
* @param string $name
14+
* @return static
15+
*/
16+
public static function make(string $name): self
17+
{
18+
return (new self)->name($name);
19+
}
20+
}

0 commit comments

Comments
 (0)