web-dev-qa-db-ja.com

ドライバー[]はサポートされていません。 -Laravel 5.3

backpackforlaravel を使用して、Webサイトのバックエンド領域を設定しています。私はProjectCrudControllerに画像フィールドを追加しました:

$this->crud->addField([
    'label' => "Project Image",
    'name' => "image",
    'type' => 'image',
    'upload' => true,
], 'both');

私のモデルProjectmutatorがあります:

public function setImageAttribute($value)
{
    $attribute_name = "image";
    $disk = "public_folder";
    $destination_path = "uploads/images";

    // if the image was erased
    if ($value==null) {
        // delete the image from disk
        \Storage::disk($disk)->delete($this->image);

        // 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;
    }
}

私のpublicフォルダーには/ uploads/images /フォルダーがあります。

しかし、プロジェクトを保存しようとすると、次のエラーが表示されます。

FilesystemManager.phpの121行目のInvalidArgumentException:

ドライバー[]はサポートされていません。

enter image description here

Myconfigフォルダー内のmyfilesystems.php fileは次のようになります。

<?php

return [

    'default' => 'local',

    'cloud' => 's3',

    'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => 'your-key',
            'secret' => 'your-secret',
            'region' => 'your-region',
            'bucket' => 'your-bucket',
        ],
        'uploads' => [
            'driver' => 'local',
            'root' => public_path('uploads'),
        ],

    ],

    'storage' => [
        'driver' => 'local',
        'root'   => storage_path(),
    ],

];

ここで何が問題になりますか?私はLaravel Homesteadバージョン2.2.2を使用しています。

12
nielsv

ここで、$disk as public_folder

public function setImageAttribute($value)
{
    $attribute_name = "image";
    $disk = "public_folder";
    $destination_path = "uploads/images";

しかし、filesystem.phpにはpublic_folderディスクがありません

新しい「public_folder」ディスクを作成する必要があります

'disks' => [

    'public_folder' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
    ],

または、$disk別のディスクへの変数:

public function setImageAttribute($value)
{
    $attribute_name = "image";
    //Uploads disk for example
    $disk = "uploads";
22
João Mantovani