我见过几个有这个错误的线程,但对我来说不是正确的解决方法。
当我尝试删除Laravel Backpack CRUD表中的条目时出现此错误:
FilesystemManager.php第121行中的InvalidArgumentException:Driver [] 不受支持。
猜测它与我的 filesystems.php
有关'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
'uploads' => [
'driver' => 'local',
'root' => public_path('uploads'),
],
...
'hero' => [
'driver' => 'local',
'root' => storage_path('app/content/img/heroes/'),
],
...
或我的模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\CrudTrait;
use Glide;
class HeroImages extends Model {
use CrudTrait;
protected $primaryKey = 'id';
protected $fillable = [
'hero_id',
'image',
'title',
'sub_title',
'link_label',
'link_value',
'order',
'status',
];
protected $table = "hero_images";
/*
* ADMIN: Store image on server
*/
public function setImageAttribute($value)
{
$attribute_name = "image";
$disk = "hero";
$destination_path = "";
// if the image was erased
if ($value==null) {
// delete the image from disk
\Storage::disk($disk)->delete($this->{$attribute_name});
// set null in the database column
$this->attributes[$attribute_name] = null;
}
// if a base64 was sent, store it in the db
if (starts_with($value, 'data:image'))
{
// 0. Make the image
$image = \Image::make($value);
// 1. Generate a filename.
$filename = md5($value.time()).'.jpg';
// 2. Store the image on disk.
\Storage::disk($disk)->put($destination_path.'/'.$filename, $image->stream());
// 3. Save the path to the database
$this->attributes[$attribute_name] = $destination_path.'/'.$filename;
}
}
/*
* ADMIN: Delete image from database (https://laravel-backpack.readme.io/v3.0/docs/crud-fields#section-image)
*/
public static function boot()
{
parent::boot();
static::deleting(function($obj) {
\Storage::disk('public_folder')->delete($obj->image);
});
}
}
答案 0 :(得分:0)
没关系,我刚发布代码时看到了错误。在
Storage::disk('public_folder')->delete($obj->image);
public_folder不是正确的属性,我需要我正在使用的列的磁盘名称。在这种情况下,英雄&#39;