считаться более профессиональным? Стоит ли так усложнять всё в коде или простота и читаемость являются более правильными. Тут Создание обычного поста. Первый код: public function store(Request $request)
{
$request->validate([
'title' => 'required',
'body' => 'required',
'file' => 'nullable|file|mimes:pdf,doc,docx|max:2048',
'image' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',
]);
$post = new Post([
'title' => $request->input('title'),
'body' => $request->input('body'),
'user_id' => auth()->user()->id,
]);
if ($request->hasFile('file')) {
$file = $request->file('file');
$fileName = time() . '_' . $file->getClientOriginalName();
$file->move(public_path('uploads'), $fileName);
$post->file = $fileName;
}
if ($request->hasFile('image')) {
$image = $request->file('image');
$imageName = time() . '_' . $image->getClientOriginalName();
$image->storeAs('public/images', $imageName);
$post->image = 'storage/images/' . $imageName;
}
$post->save();
return redirect()->route('posts.index')->with('success', 'Пост успешно создан');
}
второй код: public function store(StoreRequest $request)
{
Post::create($request->validated());
return redirect()->route('posts.index')->with('success', 'Пост успешно создан.');
}
В общем - валидация - да, должна быть в отдельном месте, но в ней не должно быть сохранения файла, что я вижу со второго варианта
Обсуждают сегодня