如何删除Laravel 5中的单个记录


How to delete a single record in Laravel 5?

使用Laravel 5,我试图删除控制器中的一条记录,下面是我的代码:

public function destroy($id)
{
     $employee = Employee::find($id);
     $employee->delete();
     return Redirect::route('noorsi.employee.index');
}

我的查看页面代码是:

<td><a href="employee/{{$employee->id}}/destroy" class="btn btn-default">Delete</a></td>

我的路线是:

Route::delete(employee.'/{id}', array('as' => 'noorsi.employee.destroy','uses' => Employeecontroller.'@destroy'));

这不起作用。

如何修复实现?

来自Laravel 5官方文档:

删除现有型号

$user = User::find(1);
$user->delete();

按密钥删除现有模型

User::destroy(1);
User::destroy([1, 2, 3]);
User::destroy(1, 2, 3);

在任何情况下,方括号之间的数字表示对象ID,但您也可以对一组模型运行删除查询:

$affectedRows = User::where('votes', '>', 100)->delete();

http://laravel.com/docs/5.0/eloquent#insert-更新-删除

因此Laravel使用destroy函数删除的方法是

<form action="{{ url('employee' , $employee->id ) }}" method="POST">
    {{ csrf_field() }}
    {{ method_field('DELETE') }}
    <button>Delete Employee</button>
</form>

你可以在这里找到一个例子http://laravel.com/docs/5.1/quickstart-intermediate#adding-删除按钮你的路线应该像这个

Route::delete('employee/{id}', array('as' => 'employee.destroy','uses' => 'Employeecontroller@destroy'));

它适用于例如:Route::resource('employee', 'EmployeeController');,也应该适用于如何设置销毁路线。

显然您有一个糟糕的路由问题。您正试图使用"get"谓词到达用"delete"谓词定义的路由。

如果你想使用锚点来删除记录,你应该添加这个路由:

Route::get('/employee/{id}/destroy', ['uses' => 'EmployeeController@destroy']);

或者继续使用delete谓词,但您需要使用一个名为_method的参数和值'delete'的表单(而不是锚点),说明您正在使用"delete"谓词。

  Route::get('/showcon/{del_id}/delete','MainController@deletemsg');
  public function deletemsg($del_id){
  $mail=Mail::find($del_id);
  $mail->delete($mail->id);
  return redirect()->back(); 
  }
  <a href="showcon/{{$m->id}}/delete">del</a>