【问题标题】:Can't edit the database, Laravel无法编辑数据库,Laravel
【发布时间】: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


【解决方案1】:

edit.blade.php 添加这个:

  <input type="hidden" name="id" value="{{ $test->id }}">

TestController.php

 use $test->save(); instead of $test->update();

【讨论】:

  • 您好,谢谢您的建议!我尝试了你的建议,我现在遇到的问题是当我使用 $test->save(); 时,一条新记录被添加到数据库中,而不是被编辑的旧记录......你知道为什么会这样吗?跨度>
  • 添加 $test = Test::findOrFail($request->id);顶部到您的更新功能修复问题xd
  • 我可以成功编辑记录了!非常感谢您的帮助?
【解决方案2】:

我和你有同样的问题。我在一个带有 laravel 的订购网站上工作,你可以从 laravel 获取数据并将其显示给用户,他也可以从网站订购一些东西,数据库将被更新。但是,我既无法获取或更新数据库中的数据。我使用 wampserver、mysql 并且一旦我在 phpmyadmin 中切换到 MariaDB 而不是 mysql,问题就解决了:http://localhost/phpmyadmin/

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 2017-04-23
    • 2014-05-23
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    相关资源
    最近更新 更多