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

时间:2015-11-13 07:58:53

标签: php laravel laravel-5 model-view-controller

使用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'));

那不起作用。

如何修复实施?

4 个答案:

答案 0 :(得分:22)

来自官方的Laravel 5文档:

删除现有模型

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

按键删除现有模型

import urllib.request
fhand=urllib.request.urlopen('http://www.py4inf.com/code/romeo.txt')
print(fhand.read())

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

b'But soft what light through yonder window breaks'
b'It is the east and Juliet is the sun'
b'Arise fair sun and kill the envious moon'
b'Who is already sick and pale with grief'

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

答案 1 :(得分:8)

因此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');,它也适用于你如何设置你的销毁路线。

答案 2 :(得分:2)

显然你的路由问题很糟糕。您正尝试使用“获取”动词来达到使用“删除”动词定义的路线。

如果要使用锚点删除记​​录,则应添加以下路径:

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

或继续使用删除动词,但是你需要使用一个名为_method且值为'delete'的参数的表单(不是锚),表明你正在使用'删除'动词

答案 3 :(得分:1)

  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>