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