我有一个带有文本字段和图像字段的编辑表单,用户可以根据需要编辑和上传新文本或图像。但如果用户不上传新图像,我只想将旧图像保留在数据库中。我的问题问题是,当我点击上传按钮时,我被重定向到文章页面,并且没有显示错误,但数据库尚未更新。任何帮助将不胜感激,因为我尝试了多种方法但没有成功。先感谢您。网页.phpRoute::get('/tests/edit/{id}', 'TestController@edit');Route::patch('/tests', 'TestController@update');测试控制器.phppublic 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
2 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
edit.blade.php 添加以下内容:
<input type="hidden" name="id" value="{{ $test->id }}">
测试控制器.php
use $test->save(); instead of $test->update();
青春有我
TA贡献1784条经验 获得超8个赞
我和你有同样的问题。我在一个使用 laravel 的订购网站上工作,你可以从 laravel 获取数据并将其显示给用户,他也可以从网站订购一些东西,数据库将被更新。但是,我也无法得到或更新数据库中的数据。我使用 wampserver、mysql,一旦我在 phpmyadmin 中切换到 MariaDB 而不是 mysql,问题就解决了:http://localhost/phpmyadmin/
- 2 回答
- 0 关注
- 118 浏览
添加回答
举报
0/150
提交
取消