php - Laravel 启动方式

标签 php laravel-5.2

在我的模型中,我设置了引导方法,因此当我软删除记录时,相关记录也会被软删除。像这样:

公司.php

protected static function boot()
    {
        parent::boot();
        static::deleting(function($company) {
            $company->department()->delete();
        });
    }

部门.php:

 protected static function boot()
    {
        parent::boot();
        static::deleting(function($department) {
            dd('test');
        });
    }

所以当我想软删除一家公司时,部门也应该被软删除。但是当我在 static::deleting(Department.php) 中 dd 时,这是没有达到的。当我像这样 dd 时:

部门.php

protected static function boot()
    {
        parent::boot();
        dd('test');
        static::deleting(function($department) {
        });
    }

结果是测试

我在这里做错了什么?

最佳答案

将此添加到您的 Company.php 模型中:

public function departments()
{
    return $this->hasMany('App\Department');
}

将此添加到您的 Department.php 模型中:

public function company()
{
    return $this->belongsTo('App\Company');
}

在 Company.php 中更新您的引导方法以供引用

$company->departments()->delete()

那你应该把Department.php文件中的boot方法去掉,因为这个不需要。

关于php - Laravel 启动方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36032086/

相关文章:

php - 上传不保存大文件

php - 如何将 Google Places API 返回的数据存储到我的数据库中?

php - 从mysql背景理解mongodb结构

php - 基于日期的 Laravel 日志文件

php - 如何在 Laravel Blade 模板中显示上传的图像?

php - 如何在没有 APD 的情况下覆盖现有的 PHP 函数?

apache - 将 Laravel 项目从 Apache 迁移到 Nginx

laravel - localhost 在 laravel 5.2(socket.io) 中没有发送任何数据

laravel-5.2 - Laravel 5 中创建策略的问题

PHP - 从多维数组插入数据库