雄辩的启动不仅仅针对一个类激活

时间:2015-10-27 14:49:52

标签: php events eloquent boot handle

我正在使用雄辩的项目,我想删除文章。问题是数据库很复杂。有些文章有article_lvl1和article_lvl1有article_lvl2。当我删除文章时,事件功能正常工作:

<?php
namespace app\model;

class Article extends \Illuminate\Database\Eloquent\Model
{
public static function boot()
{
    parent::boot();

    // cause a delete of a product to cascade to children so they are also deleted
    static::deleting(function($article)
    {
        $article->ArticleNiveau1()->delete();
        $article->ArticleNiveau2()->delete();
    });
}

public function ArticleNiveau1()
{
    return $this->hasMany('app\model\ArticleNiveau1', 'id_article');
}

public function ArticleNiveau2()
{
    return $this->hasMany('app\model\ArticleNiveau2', 'id_article');
}

protected $table = 'Article';
public $timestamps = false;
protected $primaryKey = 'id_article';
}

但是文章也可以有article_Informations,可以有article_Date。我的问题是引导函数中的所有内容在删除时都可以正常执行,但不能在article_Date中执行。这是代码:

<?php
namespace app\model;

class Article_Informations extends \Illuminate\Database\Eloquent\Model
{
public function Article()
{
    return $this->belongsTo('app\model\Article', 'id_article');
}

public function ArticleNiveau1()
{
    return $this->belongsTo('app\model\ArticleNiveau1', 'id_nv1');
}

public function ArticleNiveau2()
{
    return $this->belongsTo('app\model\ArticleNiveau2', 'id_nv2');
}

public function Article_Date()
{
    return $this->hasMany('app\model\Article_Date', 'id_info');
}

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

    // cause a delete of a product to cascade to children so they are also deleted
    static::deleting(function($info)
    {
        $info->Article_Date()->delete();
    });
}

protected $table = 'Article_Informations';
public $timestamps = false;
protected $primaryKey = 'id_info';
}

我不知道为什么,这是唯一没有在删除时触发的事件。 有人可以解释一下吗?

0 个答案:

没有答案