使用laravel 5中的模型从数据库中删除数据

时间:2015-05-18 13:13:29

标签: php laravel-5 laravel-routing

我试图通过获取数据的ID并使用get route传输来从我的表雇员中删除数据,但是我收到以下错误

  

Builder.php第125行中的ModelNotFoundException:没有查询结果   model [App \ employe]。

她是我的路线

Route::get('/delete/{employe}', 'EmployeController@delete');
Route::post('/delete', 'EmployeController@handleDelete');

我有一个名为employe的模型来访问我的表

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class employe extends Model {

    protected $fillable = array('fname','lname','age','sex','phone','email','houseno','city','kebele','state','username','password','workposition','salary','bankaccount','bankname','contactid','employedate');


}

我的控制器的一部分,用于删除

    public function delete(employe $employe)
    {
    // Show delete confirmation page.
    return View('deleteemploye', compact('employe'));
    }

    public function handleDelete()
    {


    $employe = employe::findOrFail(Input::get('employe'));
    $employe->delete();

    return Redirect::action('EmployeController@index');

}

她是我删除文件的视图

@extends('app')

@section('content')

    <div class="page-header">
        <h2>Delete {{$employe->fname}} Are you sure?</h2>
    </div>
    <form action="{{ action('EmployeController@handleDelete') }}" method="post" role="form">
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
        <input type="hidden" name="employe"  id="employe" value="{{ $employe->id }}" />
        <input type="submit" class="btn btn-default" value="Yes" />
        <a href="{{ action('EmployeController@index') }}" class="btn btn-default">No</a>
    </form>
@stop  

1 个答案:

答案 0 :(得分:1)

看起来laravel无法找到你传递的主键的模型。检查数据库,看看它是否存在。如果是,请检查deleted_at字段。如果它有一个日期,则表示它已被删除。您仍然可以使用withTrashed()

找到它
$employe = employe::withTrashed()->findOrFail(Input::get('employe'));

如果您为此模型启用了软删除,则可以通过运行

完全删除给定的行
$employe = employe::withTrashed()->findOrFail(Input::get('employe'))->forceDelete();