首页 > 解决方案 > 在 null Laravel 上调用成员函数 delete()

问题描述

当我想删除一个用户表时,它会说调用 null Laravel 上的成员函数 delete()。为什么??

这是代码:

网络路线:

//admin starts
Route::prefix('/a')->middleware('auth')->group(function () {

    Route::get('/admin', 'AdminController@index')->name('admin.index');
    Route::get('/overzicht', 'AdminController@overzicht')->name('admin.overzicht');

    Route::get('/product/create', 'ProductController@create')->name('product.add');
    Route::post('/product/create', 'ProductController@store')->name('product.store');
    
    Route::get('/userlist', 'UsersController@list')->name('user.list');
    Route::delete('/userlist/{id}', 'UsersController@destroy')->name('userlist.destroy');
    Route::get('/userlist/{id}', 'UsersController@details')->name('user.details');
});

刀片列表:

<form class="form-group pull-right" action="{{ route('userlist.destroy', ['id' => $id->id])}}" method="post">
@method("DELETE")
@csrf
<button type="submit" onclick="return confirm('Are you sure?')" value="Delete" style="border: none"><i class="fa fa-trash" aria-hidden="true"></i></button>

模型:

 protected $table = 'users';

控制器:

public function destroy($id)
{
//   if ($id != null) {
//     $id->delete();
//     return redirect()->route('user.list');
// }
    $userr = Dum::find($id);
    $userr ->delete();
   session()->flash('message', 'Delete Successfully');
    return redirect()->route('user.list');
}

标签: laravellaravel-7

解决方案


只需确保您从数据库中获取模型实例:

public function destroy($id)
{

    $userr = Dum::find($id);
    if( $userr==null)
     {
        session()->flash('message', 'Deletion failed');
     }
         else
     {
        $userr ->delete();
        session()->flash('message', 'Delete Successfully');
      }
   
    return redirect()->route('user.list');
}

推荐阅读