如何在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'));

这行不通。

如何修复实现?


答案 1

来自官方的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-update-delete


答案 2

因此,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-the-delete-button 你的路线应该看起来像这样

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

它适用于例如:它也应该与您设置销毁路线的方式一起使用。Route::resource('employee', 'EmployeeController');


推荐