@Dos771

Как лучше написать код в Controller в Laravel?

Добрый день. Прошу помочь начинающему Laravel прогеру )
Ребят как мне написать это код лучше, у меня просто два раз повторяется один тот же код, только значение name в Controller меняется. На данный момент код работает, только это говнокод )) Заранее спасибо

public function create(Request $request)
{
    $this->validate($request, [
        'pasport' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        'certificate' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);


    $filenameWithExt = $request->file('pasport')->getClientOriginalName();
    $filenameWithExtTwo = $request->file('certificate')->getClientOriginalName();


    $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
    $filenameTwo = pathinfo($filenameWithExtTwo, PATHINFO_FILENAME);

    $extension = $request->file('pasport')->getClientOriginalExtension();
    $extensionTwo = $request->file('certificate')->getClientOriginalExtension();

    $fileNameToStore = $filename . '_'.time(). '.' . $extension;
    $fileNameToStoreTwo = $filenameTwo . '_'.time(). '.' . $filenameWithExtTwo;

    $path = $request->file('pasport')->storeAs('public/images', $fileNameToStore);
    $pathTwo = $request->file('certificate')->storeAs('public/images', $fileNameToStoreTwo);


    $post = new Check();
    $post->user_id = auth()->user()->id;
    $post->pasport = $fileNameToStore;
    $post->certificate = $fileNameToStoreTwo;
    $post->save();

    return redirect('/sendpalate')->with('success', 'Ваши данные успешно отправлены');

}
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 2
@hakkol
1) Вынесите валидацию в отдельный реквест
2) Создайте хелпер, в котором будет метод по сохранению картинки
3) Вызывайте в контроллере метод хелпера и передавайте туда файл ($request->file('pasport') или $request->file('certificate'))
Ответ написан
Комментировать
@asd111
Говнокод это когда ничего не понятно в написанном, как в битрикс например. У тебя здесь всё понятно, не парься.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы