【问题标题】:NotFoundHttpException in RouteCollection.php (line 179) when delete data from table从表中删除数据时,RouteCollection.php(第 179 行)中的 NotFoundHttpException
【发布时间】:2018-08-01 13:49:06
【问题描述】:

所以,视图页面已经显示了所有数据。但是按下删除按钮时会出现错误“未找到异常”。当我按下删除按钮时,浏览器中显示的 URL 是“http://localhost:8000/admin/hapusdataruang/69

这是查看页面

          <table id="datatable-buttons" class="table table-striped table-bordered">
                  <thead>
                        <tr>
                            <th>ID Ruang</th>
                            <th>Nama Ruangan</th>
                            <th>Keterangan</th>
                            <th>Aksi</th>
                        </tr>
                    </thead>
                  <tbody>
                        @foreach($showruang as $rooms)
                      <tr>
                        <td>{{$rooms->id_ruang}}</td>
                        <td>{{$rooms->nm_ruang}}</td>
                        <td>{{$rooms->keterangan}}</td>
                        <td>
                            <form action="{{ url('/admin/hapusdataruang', $rooms->id_ruang) }}" method="post">
                            {{ csrf_field() }}
                            {{ method_field('DELETE') }}
                            <a href="{{ url('/admin/editdataruang',$rooms->id_ruang) }}" class=" btn btn-sm btn-primary">Edit</a>
                            <button class="btn btn-sm btn-danger" type="submit" onclick="return confirm('Yakin ingin menghapus data?')">Delete</button>
                            </form>
                        </td>
                    </tr>
                   @endforeach
                    </tbody>

这是管理控制器

public function destroyruang($id_ruang)
    {
        $ruang = Ruang::where('id_ruang',$id_ruang)->first();
        $ruang->delete();
        return redirect(url('/admin/dataruang'));
    }

这是管理员路由

 Route::post('/hapusdataruang', 'AdminController@destroyruang', function () {
    $users[] = Auth::user();
    $users[] = Auth::guard()->user();
    $users[] = Auth::guard('admin')->user();
    //dd($users);
})->name('destroydataruang');

这是阮模型

use Illuminate\Database\Eloquent\Model;
namespace App;

    class Ruang extends Model
    {
        protected $table = 'tr_ruang';

        protected $primaryKey = 'id_ruang';

        protected $dates = ['deleted_at'];
        protected $fillable = ['keterangan','nm_ruang'];
    }

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    问题出在您的路线文件中。您正在通过 POST 请求向此 url /admin/hapusdataruang 提交表单,但您的表单中有 {{ method_field('DELETE') }},因此您的路由需要能够接受 DELETE 请求。

    您的代码:

     Route::post('/hapusdataruang', 'AdminController@destroyruang', function () {
    

    是针对POST请求,不是DELETE请求,所以改成:

     Route::delete('/hapusdataruang', 'AdminController@destroyruang', function () {
    

    【讨论】:

      【解决方案2】:

      更改此代码

       Route::post('/hapusdataruang', 'AdminController@destroyruang', function () {
      

       Route::delete('/hapusdataruang', 'AdminController@destroyruang', function () {
      

      【讨论】:

        【解决方案3】:

        如果您想使用 POST 请求从数据库中删除条目,那么您不必在表单中指定 {{ method_field('DELETE') }},如果您从表单声明中删除它,那么您的现有路由将起作用,但如果您想使用 DELETE 请求,则必须将路由指定为 Route::delete('/yourpath','ControllerName@methodname');

        【讨论】:

          猜你喜欢
          • 2018-07-29
          • 1970-01-01
          • 1970-01-01
          • 2018-02-13
          • 2018-04-02
          • 1970-01-01
          • 2019-01-09
          • 1970-01-01
          • 2016-08-16
          相关资源
          最近更新 更多