Как я могу удалить связанные значения? - PullRequest
0 голосов
/ 17 октября 2019

От новичка до Laravel здесь! У меня есть таблица категорий и таблица формации. Обе они связаны, каждая категория имеет много формаций, и каждая формация принадлежит категории. Я пытаюсь сделать так, чтобы каждый раз при удалении категории все группы, связанные с этой категорией, также удалялись.

Это модель моей категории

class Category extends Model
{
    function formations()
    {
        return $this->hasMany('App\Formation');
    }

    protected $fillable =['name','description'];

}

А это модель моего формирования

class Formation extends Model
{
    function category()
    {
        return $this->belongsTo('App\Category',"category_id");
    }
}

Вот как я удаляю мою категорию

public function destroy(Category $category)
{
    $category->delete();
    return redirect()->route('category.index');
}

Какой код я должен добавить, чтобы, когда я удаляю какую-либо категорию, все данные, связанные с образованием, тоже были удалены? Я надеюсь, что мой вопрос ясен и спасибо заранее.

1 Ответ

1 голос
/ 17 октября 2019

Просто удалите все связи перед удалением категории с помощью $category->formations()->delete();

Или вы можете добавить ее в свою модель, прослушав событие удаления

class Category extends Eloquent
{
    public static function boot() {
        parent::boot();

        static::deleting(function($category) {
             $category->formations()->delete();
        });
    }

    public function formations()
    {
        return $this->has_many('Formation');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...