Обзор кода для сохранения и обновления нескольких файлов LaravelPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Обзор кода для сохранения и обновления нескольких файлов Laravel

Сообщение Гость »


Могу ли я попросить вас проверить мой код? Кажется, все работает, но я не уверен, что это лучший способ сохранить и обновить несколько файлов. Это способ, который я понял, но у меня не очень много опыта, поэтому я боюсь, что могут возникнуть какие-то проблемы с безопасностью или более эффективный способ их решения. Я прошу всего лишь обзор кода и обратную связь.

Контроллер выглядит так:

класс DiaryController расширяет контроллер { индекс публичной функции() { $users = User::has('дневники')->get(); return view('дневник', компакт('пользователи')); } публичная функция show($id) { $user = Пользователь::findOrFail($id); return view('diaryshow', Compact('пользователь')); } публичная функция create() { $users = Пользователь::all(); $lessons = Урок::all(); return view('diarycreate', компакт('пользователи', 'уроки')); } хранилище общедоступных функций (запрос $request) { $attributes = $request->validate([ 'описание' => 'обязательно|мин:2', 'user_id' => 'обязательно', 'тема' => 'обязательно|мин:2|макс:255', 'lesson_id' => 'обнуляемый', 'files.*' => 'nullable|mimes:jpg,bmp,png,pdf|file|max:60000' ]); $diary = новый дневник; $diary->description = $attributes['description']; $diary->user_id = $attributes['user_id']; $diary->topic = $attributes['topic']; $diary->lesson_id = $attributes['lesson_id']; $filePaths = []; if ($request->hasFile('files')) { foreach ($request->file('files') as $file) { $path = $file->store('файлы'); $filePaths[] = $путь; } } $diary->file_paths = json_encode($filePaths); $дневник->сохранить(); return redirect('/diary')->with('успех', 'Все сохранено'); } публичная функция edit(Дневник $diary) { $users = Пользователь::all(); $lessons = Урок::all(); return view('diaryedit', Compact('дневник', 'пользователи', 'уроки')); } обновление публичной функции (Дневник $diary) { $attributes = request()->validate([ 'описание' => 'обязательно|мин:2', 'user_id' => 'обязательно', 'тема' => 'обязательно|мин:2|макс:255', 'lesson_id' => 'обнуляемый', 'save_files.*' => 'nullable|regex:/^[a-zA-Z0-9.\/]+$/|max:255', 'files.*' => 'nullable|mimes:jpg,bmp,png,pdf|file|max:60000' ]); $diary->description = $attributes['description']; $diary->user_id = $attributes['user_id']; $diary->topic = $attributes['topic']; $diary->lesson_id = $attributes['lesson_id']; //dd("1 программа"); $filePaths=[]; if(request()->hasFile('files')) { foreach (request()->file('files') as $file) { $path = $file->store('файлы'); $filePaths[] = $путь; } } if(request()->input('save_files')){ foreach (request()->input('save_files') as $path){ $filePaths[] = $путь; } } unset($attributes['save_files']); unset($attributes['files']); $attributes['file_paths'] = json_encode($filePaths); $дневник->обновление($атрибуты); return redirect()->route('дневник')->with('успех', 'Позиция изменена'); } Моя блейд-форма обновления файлов выглядит так (форма сохранения файлов аналогична):

@csrf @method('ИСПРАВЛЕНИЕ') {{old('description', $diary->description)}} @foreach($users как $user) user->id === $user->id ? 'выбрано' : ''}}> {{$user->имя}} @endforeach @foreach($уроки как $уроки) id === $diary->lesson_id ? 'выбрано': ''}} >{{$lesson->название_урока}} @endforeach @if($diary->пути_файлов) Определить возможность использования @foreach(json_decode($diary->file_paths) как $index => $filePath) {{basename($filePath)}} @endforeach @foreach($errors->get('save_files.*') как $error) @endforeach @endif {{ __('Обновлять') }} Спасибо за помощь!

Было бы здорово, если бы кто-нибудь просто проверил мой код и дал мне отзыв, все ли с ним в порядке. Это работает, но я не считаю, что это лучшее решение.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Обзор бета-версии Google Play Store влияет на обзор производства?
    Anonymous » » в форуме Android
    0 Ответы
    75 Просмотры
    Последнее сообщение Anonymous
  • Обзор и руководство по структуре кода Swift с реализацией списка загрузки
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Проект двигателя 5 В (нужна электрическая схема + обзор кода) [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Обзор кода GitHub - ширина полного экрана
    Anonymous » » в форуме CSS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Вход в систему веб -сайта с помощью вывода и сохранения вывода и сохранения вывода и сеанса?
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»