WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Как организовать хранение и обработку информации о файлах на Laravel?

Всем привет.
НУжно организовать хранение информации о файлах в базе. Сейчас я сделал структуру таблиц таким образом:
Таблица с файлами:
files
- id int [pk, increment]
- path varchar
- mime_type varchar
- size int

Таблица с картинками:
pictures
- id int [pk, increment]
- width int
- height int
- file_id [fk] - наследуемы ключ (связь 1 к 1 с таблицей files)

Модели сейчас такие:
class File extends BaseModel
{
    protected $table = 'files';

    protected $fillable = ['path', 'mime_type', 'size'];
}


class Picture extends BaseModel
{
    protected $table = 'pictures';

    protected $fillable = ['width', 'height', 'file_id'];

    public function file() {
        $this->hasOne(File::class);
    }
}


Сейчас пытаюсь заполнить faker-ом фейковые данные и не знаю как организовать сохранение информации в базу:
если файл НЕ картинка, то просто сохраняем в инфо о нем таблицу files, если картинка, то получаем нужную информацию и сохраняем не только в таблицу files, но и в таблицу pictures.

Фейкер на входе получает класс модель. Но в моем случае он должен получить скорее какой-то другой класс, возможно хэндлер, которрый получит данные от фейкера и запишет как надо в базу.

Подскажитке как подобное можно организовать? Можно ли через фейкер создавать не модель, а другую модель?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
@jazzus
Для картинок сделать отдельный Seeder генерить там только картинки через отношение с файлом . Для файлов без картинок свой
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы