Скорее всего, это дублирующий вопрос, но я искал решения и, похоже, не могу найти тот, который устраняет проблему, с которой я столкнулся. Я создал функцию с именем validateRequest , которая проверяет все поля. Затем эта функция вызывается в store function $post = Post::create($this->validateRequest());
Я убедился, что в HTML форма enctype="multipart/form-data"
включена, но каждый раз при отправке новой записи появляются ошибки. Не уверен, правильно ли я использую метод возврата или что-то еще, очень благодарен за помощь.
public function validateRequest()
{
return tap(
$validated = request()->validate([
'title' => 'required|string',
'h1' => 'required|string',
'page_title' => 'required|string',
'meta_description' => 'required|string',
'image' => 'sometimes|files|image|mimes:jpeg,png,jpg,gif,svg|max:5000',
'content' => 'required|string',
'active' => 'integer'
]), function () {
if (request()->hasFile('image')){
request()->validate([
'image' => 'sometimes|files|image|mimes:jpeg,png,jpg,gif,svg|max:5000',
]);
}
// Check if active is ticked
$validated['active'] = isset(request()->active[0]) ? 1 : 0;
// Create slug from title
$validated['slug'] = Str::slug(request()['title'], '-');
});
}