Совершенно новый для laravel Я хочу загрузить изображение и сохранить его в базе данных и пути к файлу. Первая проблема, с которой я столкнулся, это то, что изображение не появляется в массиве для функции validateRequest , поэтому оно возвращается как NULL в базе данных. Вторая проблема - я пытался использовать хранилище: ссылка для хранения всех загруженных изображений, но не могу сохранить изображения и не уверен, какой путь к файлу я хотел использовать.
public function validateRequest()
{
$validated = request()->validate([
'title' => 'required|string',
'h1' => 'required|string',
'page_title' => 'required|string',
'meta_description' => 'required|string',
'content' => 'required|string',
'active' => 'integer'
]);
if (request()->hasFile('image')){
$validated = request()->validate([
'image' => 'sometimes|file|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'], '-');
return $validated;
}
public function storeImage($post)
{
if (request()->hasFile('image')) {
$post->update([
'image' => request()->image->storeAs('/images/uploads/posts', 'public')
]);
}
}
Я попытался поместить изображение с остальными полями в $validated = request()->validate
, но затем он говорит, что «это изображение должно быть изображением», даже если изображение было выбрано. Очень ценю помощь, спасибо.