Модель с полями с файлами
Если вы хотите использовать поле загрузки файла в SleepingOwl Admin вы должны подготовить вашу модель:
- Добавьте интерфейс
SleepingOwl\Models\Interfaces\ModelWithFileFieldsInterfaceв вашу модель. - Добавьте трэйт
SleepingOwl\Models\Traits\ModelWithImageOrFileFieldsTrait(если ваша модель расширяетSleepingOwlModelвам не нужно это делать). - Добавьте метод
public function getFileFields().
Пример
<?php
use SleepingOwl\Models\Interfaces\ModelWithFileFieldsInterface;
use SleepingOwl\Models\Traits\ModelWithImageOrFileFieldsTrait;
class Document extends \Eloquent implements ModelWithFileFieldsInterface
{
use ModelWithImageOrFileFieldsTrait;
public function getFileFields()
{
return [
'file' => 'documents/',
'other' => ['other_files/', function($directory, $originalName, $extension)
{
return $originalName;
}]
];
}
}
Указание полей с файлами
getFileFields() должен возвращать массив, ключи которого — название полей с файлами, а значения — пути к директории, где будут храниться файлы, относительно filesDirectory (смотрите конфигурация).
Если путь пуст, файлы будут храниться в filesDirectory.
Произвольная функция именования файлов
Значения в массиве могут быть типа string или array:
string— директория для загрузки файлов, имя файла будет сгенерировано случайно.array— первый элемент массива будет директорией для загрузки файлов, второй элемент должен быть функцией, возвращающей название файла (function($directory, $originalName, $extension){}).$directory— абсолютный путь к директории загрузки$originalName— исходное название загруженного файла$extension— расширение загруженого файла
Использование поля с изображением
Доступ к полю вашей модели
$document->file
вернет объект класса SleepingOwl\Models\Attributes\File.
Вы можете использовать
$document->file->link()
для получения абсолютного адреса файла.