无法编辑数据库,Laravel

我有一个带有文本字段和图像字段的编辑表单,用户可以根据需要编辑和上传新文本或图像。但如果用户不上传新图像,我只想将旧图像保留在数据库中。


我的问题


问题是,当我点击上传按钮时,我被重定向到文章页面,并且没有显示错误,但数据库尚未更新。


任何帮助将不胜感激,因为我尝试了多种方法但没有成功。


先感谢您。


网页.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


红颜莎娜
浏览 124回答 2
2回答

肥皂起泡泡

edit.blade.php 添加以下内容:&nbsp;&nbsp;<input&nbsp;type="hidden"&nbsp;name="id"&nbsp;value="{{&nbsp;$test->id&nbsp;}}">测试控制器.php&nbsp;use&nbsp;$test->save();&nbsp;instead&nbsp;of&nbsp;$test->update();

青春有我

我和你有同样的问题。我在一个使用 laravel 的订购网站上工作,你可以从 laravel 获取数据并将其显示给用户,他也可以从网站订购一些东西,数据库将被更新。但是,我也无法得到或更新数据库中的数据。我使用 wampserver、mysql,一旦我在 phpmyadmin 中切换到 MariaDB 而不是 mysql,问题就解决了:http://localhost/phpmyadmin/
打开App,查看更多内容
随时随地看视频慕课网APP