2015-10-18 63 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閱讀。