我有一个带有文本字段和图像字段的编辑表单,用户可以根据需要编辑和上传新文本或图像。但如果用户不上传新图像,我只想将旧图像保留在数据库中。
我的问题
问题是,当我点击上传按钮时,我被重定向到文章页面,并且没有显示错误,但数据库尚未更新。
任何帮助将不胜感激,因为我尝试了多种方法但没有成功。
先感谢您。
网页.php
Route::get('/tests/edit/{id}', 'TestController@edit');
Route::patch('/tests', 'TestController@update');
测试控制器.php
public function edit(Request $request)
{
$test = Test::findOrFail($request->id);
return view('test.edit', ['test' => $test]);
}
public function update(Request $request, Test $test)
{
$test->user_id = $request->user()->id;
$test->name = $request->name;
if($request->hasFile('image')) {
Storage::delete('public/image/' . $test->image); //Delete old image
$path = $request->file('image')->store('public/image');
$test->image = basename($path);
}
$test->update();
return redirect('/tests')
}
编辑.blade.php
@extends('layouts.app')
@section('content')
<div>
<form action="/tests" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
{{ method_field('patch') }}
name:<input type="text" name="name" value='{{ $test->name }}'><br>
image: <input type="file" name="image"><br>
<input type='submit' value='upload'>
</form>
</div>
@endsection
肥皂起泡泡
青春有我