从表中删除数据时,RouteCollection.php(第179行)中的NotFoundHttpException

时间:2018-08-01 05:29:10

标签: php laravel

因此,查看页面已显示所有数据。但是按下删除按钮时出现错误“未找到异常”。当我按下删除按钮时在浏览器中显示的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>

这是AdminController

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'];
    }

3 个答案:

答案 0 :(得分:1)

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

您的代码:

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

用于POST请求,而不用于DELETE请求,因此将其更改为:

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

答案 1 :(得分:0)

更改此代码

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

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

答案 2 :(得分:0)

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