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

Si *_* Va 7 php model-view-controller laravel laravel-5

使用Laravel 5我试图删除控制器中的单个记录,这是我的代码:

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

我的浏览页面代码是:

<td><a href="employee/{{$employee->id}}/destroy" class="btn btn-default">Delete</a></td>
Run Code Online (Sandbox Code Playgroud)

我的路线是:

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

那没用.

如何修复实施?

Lui*_*lez 26

从官方的Laravel 5文档:

删除现有模型

$user = User::find(1);
$user->delete();
Run Code Online (Sandbox Code Playgroud)

按键删除现有模型

User::destroy(1);
User::destroy([1, 2, 3]);
User::destroy(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

在每种情况下,括号中的数字表示对象ID,但您也可以在一组模型上运行删除查询:

$affectedRows = User::where('votes', '>', 100)->delete();
Run Code Online (Sandbox Code Playgroud)

http://laravel.com/docs/5.0/eloquent#insert-update-delete


Saa*_*aad 10

所以Laravel删除使用该destroy功能的方法是

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

你可以在这里找到一个例子http://laravel.com/docs/5.1/quickstart-intermediate#adding-the-delete-button 你的路线应该是这样的

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

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


Ama*_*san 3

显然你有一个糟糕的路由问题。您正在尝试使用“get”动词来到达用“delete”动词定义的路由。

如果你想使用锚点删除记​​录,你应该添加以下路由:

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

或者继续使用删除动词,但随后您需要使用一个带有名为 的参数的表单(而不是锚),_method并且值'delete'表明您正在使用“删除”动词。