gpt4 book ai didi

Laravel-如果不存在关系则删除

转载 作者:行者123 更新时间:2023-12-04 22:09:54 27 4
gpt4 key购买 nike

下面是模型之一。仅在没有其他模型引用该条目时,我才想删除该条目?最好的方法是什么?

namespace App;

use Illuminate\Database\Eloquent\Model;

class Telco extends Model
{
public function operators()
{
return $this->hasMany('App\Operator');
}

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

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

public function users()
{
return $this->morphMany('App\User', 'owner');
}

public function subscribers()
{
return $this->hasManyThrough('App\Subscriber', 'App\Operator');
}
}

最佳答案

您可以使用deleting模型事件,并在删除之前检查是否有任何相关记录,并防止删除(如果存在)。

在您的Telco模型中

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

static::deleting(function($telco) {
$relationMethods = ['operators', 'packages', 'topups', 'users'];

foreach ($relationMethods as $relationMethod) {
if ($telco->$relationMethod()->count() > 0) {
return false;
}
}
});
}

关于Laravel-如果不存在关系则删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46033823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com