我用空间媒体库更新了图片,但我的图片没有出现



我的控制器:

public function update(SettingUpdateRequest $request, Setting $id){
$setting = Setting::first();
$setting->update($request->post());
if ($request->hasFile('site_logo')) {
$setting->addMedia($request->site_logo)->toMediaCollection('document');
}
return redirect()
->route('back.setting.index')->withMessage('Ayarlar başarıyla güncellendi!');
}

我的型号:

namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
use SpatieMediaLibraryHasMedia;
use SpatieMediaLibraryInteractsWithMedia;
class Setting extends Model implements HasMedia
{
use HasFactory , InteractsWithMedia;
protected $table='settings';
protected $fillable=['site_title','site_desc','site_email'];
protected $appends = ['site_logo'];

public function getSiteLogoAttribute()
{
return $this->getMedia('document')->last();
}
}

我在stroge中的图片方式:https://prnt.sc/11q22mc

我的刀片:

<div class="form-group">
<label for="exampleInputFile">Site Logo</label>
<input type="file" id="exampleInputFile" name="site_logo" class="form-control" accept="image/*">
</div>
<label><strong>Resimler:</strong></label>
@if (!$setting->site_logo)
<span class="form-text text-muted">Bu Rehber ile ilgili resim bulunamadı. Yeni bir resim ekleyin! 
</span>
@endif
<div class="col-lg-3">
<div class="image-input image-input-empty image-input-outline" id="kt_image_5" style="background-image: url({{$setting->getFirstMediaUrl('document')}})">
<div class="image-input-wrapper"></div>
<span class="btn btn-xs btn-icon btn-circle btn-white btn-hover-text-primary btn-shadow" data-action="cancel" data-toggle="tooltip" title="" data-original-title="Cancel avatar">
<i class="ki ki-bold-close icon-xs text-muted"></i>
</span>
<span class="btn btn-xs btn-icon btn-circle btn-white btn-hover-text-primary btn-shadow" data-action="remove" data-toggle="tooltip" title="" data-original-title="Remove avatar">
</span>
</div>
</div>

我的数据库:https://prnt.sc/11q2b2l

我用空间媒体库更新了图片,但我的图片没有出现

https://prnt.sc/11q2fvi我的控制台故障:https://prnt.sc/11q2k8q

您应该检索刀片中的最后一个介质。由于您已经在模型中定义了getter,所以可以使用以下代码。

{{ $setting->site_logo->getUrl() }}

您应该删除最后一个图像

$setting->media()->delete();

或者你可以使用

$setting->clearMediaCollection('document');

最新更新