2015-10-18 59 views
0

我有一个Model,我需要删除的记录,但是我需要从数据透视表中也删除其id的,所以我试图列出删除的事件,但没有奏效如何正确删除活动?

这里我如何添加事件:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Criteria extends Model { 

    protected $table = 'criterias'; 

    public static function boot() 
    { 
     parent::boot(); 

     static::deleted(function($criteria) 
     { 
      DB::table('criteria_criteria')->where('criteria_id', '=', $criteria->id)->delete(); 
     }); 

    } 


} 

我在Laravel 5.1,任何想法该怎么办?

回答

0

我想你还没有使用过它的关系。请用你的数据透视表创建一个relationship

public function criteria() 
{ 
    return $this->belongsToMany('App\Criteria'); 
} 

这会自动管理您在数据透视表上的删除查询。它也有一个好处,您可以使用它的syncdetach方法来添加和删除数据透视表记录。

欲了解更多详细信息,你可以通过搜索关键词pivot在这tutorial阅读。