【发布时间】:2020-07-19 14:28:57
【问题描述】:
我有一个带有文本字段和图像字段的编辑表单,用户可以在其中编辑和上传新的文本或图像,如果他/她愿意的话。但如果用户不上传新图片,我只想将旧图片保留在数据库中。
我的问题
问题是当我点击上传按钮时,我被重定向到文章页面并且没有显示错误,但数据库从未更新过。
任何帮助都将不胜感激,因为我尝试了多种方法都没有成功。
提前谢谢你。
web.php
Route::get('/tests/edit/{id}', 'TestController@edit');
Route::patch('/tests', 'TestController@update');
TestController.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')
}
edit.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
【问题讨论】:
-
你的补丁请求中的
id在哪里? -
你没有通过
id更新方法
标签: php mysql database laravel eloquent