doutun9179 2017-08-06 07:20
浏览 36
已采纳

如何在Laravel中解决此数据更新错误

I want to Update a Registration Form data. So , at first I have created a Table for the show data. In this table , I have included an ViewForUpdate button and I have passed the Id. When I click that ViewForUpdate button , it shows unique data correctly in an another page. After I inputted new data and when I click update button , it shows this error -

MethodNotAllowedHttpException

So , How to fix this ??

Here is the RegViewUpdate.blade.php file

<html>
<head>

<body>

<form action="edit{{$users[0]->id}}" method="post" enctype="multipart/form-data">

{{ method_field('PUT') }}
{{ csrf_field() }}

<div class="form-group">
    <label>Name : *</label>
    <input type="text" class="form-control" name="name" value="{{$users[0]->name}}" required>
  </div>

  <div class="form-group">
    <label>Username : *</label>
    <input type="text" class="form-control" name="username" value="{{$users[0]->username}}" required>
  </div>

  <div class="form-group">
    <label>Password : *</label>
    <input type="password" class="form-control" name="password" value="{{$users[0]->pw}}" required>
  </div>

  <div class="form-group">
    <label>Upload Profile Picture :</label>
    <input type="file" class="form-control-file" name="file_img" aria-describedby="fileHelp">
    <small id="fileHelp" class="form-text text-muted">If U Want , U Can Skip Upload A Profile Picture</small>
  </div>

  <input type="submit" class="btn btn-primary" name="submit" value="Update">

</form>

</body>
</html>

Here is the RegViewController.php file

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;

class RegViewController extends Controller
{

    public function index()
    {
        return view('RegView');
    }

    public function show($id) {
        $users = DB::select('select * from academic where id = ?',[$id]);
        return view('RegViewUpdate',['users'=>$users]);
    }

    public function edit(Request $request, $id)
    {
        $name = $request->input('name');

        DB::update('update academic set name = ? where id = ?',[$name,$id]);
        echo "Record updated successfully.<br/>";

    }

}

Here is the Routes that I have created.

Route::get('edit/{id}','RegViewController@show');
Route::post('edit{id}','RegViewController@edit');

academic table Structure.

enter image description here

  • 写回答

4条回答 默认 最新

  • duanniwu7730 2017-08-06 13:12
    关注

    Try this:

    RegViewUpdate.blade.php

    <html>
    <head>
    
    <body>
    
    <form action="edit/{{$users[0]->id}}" method="post" enctype="multipart/form-data">
    
    {{ method_field('PUT') }}
    {{ csrf_field() }}
    
    <div class="form-group">
        <label>Name : *</label>
        <input type="text" class="form-control" name="name" value="{{$users[0]->name}}" required>
      </div>
    
      <div class="form-group">
        <label>Username : *</label>
        <input type="text" class="form-control" name="username" value="{{$users[0]->username}}" required>
      </div>
    
      <div class="form-group">
        <label>Password : *</label>
        <input type="password" class="form-control" name="password" value="{{$users[0]->pw}}" required>
      </div>
    
      <div class="form-group">
        <label>Upload Profile Picture :</label>
        <input type="file" class="form-control-file" name="file_img" aria-describedby="fileHelp">
        <small id="fileHelp" class="form-text text-muted">If U Want , U Can Skip Upload A Profile Picture</small>
      </div>
    
      <input type="submit" class="btn btn-primary" name="submit" value="Update">
    
    </form>
    
    </body>
    </html>
    

    RegViewController.php

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use DB;
    
    class RegViewController extends Controller
    {
    
        public function index()
        {
            return view('RegView');
        }
    
        public function show($id) {
            $users = DB::select('select * from academic where id = ?',[$id]);
            return view('RegViewUpdate',['users'=>$users]);
        }
    
        public function edit(Request $request, $id)
        {
            $name = $request->input('name');
            try {
                 DB::table('academic')
                      ->where('id', $id)
                      ->update(['name' => $name]);
                 echo "Record updated successfully.<br/>";
            }  catch (\Exception $ex) {
                 dd($ex);
            }
        }
    
    }
    

    Routes:

    Route::get('edit/{id}','RegViewController@show');
    Route::put('edit/{id}','RegViewController@edit');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号