Задать вопрос
vanyahuk
@vanyahuk

Как проверить значения всех названий файлов на уникальность?

есть массив :

array:5 [
  0 => array:4 [
    "preview" => "blob:http://127.0.0.1:8000/d8d6b9e3-97e2-46c7-a2e9-8f05f9f59b63"
    "uploaded" => 1
    "filename" => "5ba4d101048ed_887ef694391f92971f6358c671c55e27.jpg?1537528066083"
    "isCover" => 1
  ]
  1 => array:3 [
    "preview" => "blob:http://127.0.0.1:8000/c83d8037-a0da-412e-b7ea-4872e7d33237"
    "uploaded" => 1
    "filename" => "5ba4d10228059_857336b00f3eefefdfefa3339416ebf9.jpg?1537528067092"
  ]
  2 => array:3 [
    "preview" => "blob:http://127.0.0.1:8000/2c1ccb68-a578-4f88-8d57-30a1072b5d5b"
    "uploaded" => 1
    "filename" => "5ba4d10321b3a_33197f8397faa75bb157b9e784f2f128.jpg?1537528068000"
  ]
  3 => array:3 [
    "preview" => "blob:http://127.0.0.1:8000/4b946662-90a6-4b28-94e0-e4c47627c35e"
    "uploaded" => 1
    "filename" => "5ba4d104d419a_74310cd34625bf5dc189f3adcfd7f61a.jpg?1537528069764"
  ]
  4 => array:3 [
    "preview" => "blob:http://127.0.0.1:8000/6457157d-bfb2-4ee9-a3ed-333e9c900bb1"
    "uploaded" => 1
    "filename" => "5ba4d10409a0e_becb3d4e554cef42eb5d8261f392d288.jpg?1537528068828"
  ]
]


мне нужно средствами Laravel Validator проверить каждое поле filename на уникальность в таблице pictures (id, name) и на существование файла в системе, как можно такое сделать при том использовать минимум кода?

PS: Была идея для начала собрать названия, потом сделать whereIn в БД, после чего собрать только инукальные названия и тогда проверять их на наличие в файловой системе, мб в кого-то есть лучшые варианты решения задачи.
  • Вопрос задан
  • 317 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Astatroth
@Astatroth
Я тут случайно
Пробовали правило 'fields.*.filename' => 'unique' ?
Ответ написан
Комментировать
dark1112
@dark1112
Web developer
'array.*.filename' => 'unique:table,column'
Проверяет уникальность по полю column таблицы table в базе данных.

А вот с наличием в файловой системе стандартного метода нет, нужно писать свой
Ответ написан
Ваш ответ на вопрос

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

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