spat ie медиа библиотека с облачным - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь интегрировать пакет мультимедийной библиотеки spat ie, чтобы использовать cloudinary для размещения и обслуживания изображений.

пакет не поддерживает cloudinary, поэтому мне пришлось использовать другой старый пакет: flysystem-cloudinary

Я также следил за обсуждением стекопотока, где кто-то также боролся с ним: spat ie -cloudinary

Мне удалось загрузить изображение в облачную систему, но когда я пытаюсь чтобы получить его, я получаю эту ошибку:

Объявление App \ Cloudinary \ CloudinaryUrlGenerator :: getTevenUrl (): строка должна быть совместима с Spatie \ MediaLibrary \ UrlGenerator \ UrlGenerator :: getTeilitaryUrl (DateTimeInterface $ expiration , массив $ options = Array): string

Это мой CloudinaryUrlGenerator:

<?php

namespace App\Cloudinary;

use Spatie\MediaLibrary\UrlGenerator\BaseUrlGenerator;

class CloudinaryUrlGenerator extends BaseUrlGenerator
{
    const HOST = 'https://res.cloudinary.com/';

/**
 * Get the url for a media item.
 *
 * @return string
 */
public function getUrl(): string
{
    $cloudBaseUrl = self::HOST . config('filesystems.disks.cloudinary.cloud_name') . '/';

    $options = [
        'q_auto',
    ];

    $filePathIncludingFilenameAndExtension = '/' . $this->pathGenerator->getPath($this->media) . $this->media->file_name;

    return $cloudBaseUrl . implode(',', $options) . $filePathIncludingFilenameAndExtension;
}

/**
 * Get the temp url for a media item.
 *
 * @return string
 */
public function getTemporaryUrl(): string
{
    return $this->getUrl();
}

/**
 * Get the responsive images directory url for a media item.
 *
 * @return string
 */
public function getResponsiveImagesDirectoryUrl(): string
{
    return $this->getUrl();
}
}

Я пытался поиграть с определением функции, но оно не решило ее.

1 Ответ

1 голос
/ 02 марта 2020

Вы можете использовать его, если используете < v7.

С момента выпуска v7, getTemporaryUrl имеет два параметра:

getTemporaryUrl(DateTimeInterface $expiration, array $options = []): string;

Вы можете добавить эти параметры в свой метод:

use DateTimeInterface;

// 

public function getTemporaryUrl(DateTimeInterface $expiration, array $options = []): string
{
    return $this->getUrl();
}
``
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...