FilesystemManager.php第121行中的InvalidArgumentException:不支持Driver []

时间:2017-11-01 18:23:46

标签: laravel backpack-for-laravel

我见过几个有这个错误的线程,但对我来说不是正确的解决方法。

当我尝试删除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);
    });
}

}

1 个答案:

答案 0 :(得分:0)

没关系,我刚发布代码时看到了错误。在

Storage::disk('public_folder')->delete($obj->image);

public_folder不是正确的属性,我需要我正在使用的列的磁盘名称。在这种情况下,英雄&#39;