【问题标题】:How to check id which I used from a table that related with other multiple table?如何检查我从与其他多个表相关的表中使用的 id?
【发布时间】:2018-10-23 04:29:27
【问题描述】:

当我想从表中删除一行时,我想检查使用该行 id 的表。如果使用则不允许删除。

【问题讨论】:

标签: laravel


【解决方案1】:

您可以简单地检查该行中的特定列(包含其他表的键)是否为空或为空,如果为空则删除该行,否则跳过它。 你有两种方法可以做到-

  1. 使用 eloquent 通过主键获取行并检查集合上的属性。
  2. 在数据库中编写一个存储过程,并在你的 Laravel 代码中调用它。

【讨论】:

    【解决方案2】:

    您可以使用deleting 模型事件来检查关系是否存在。如果他们这样做,则阻止删除。

    https://laravel.com/docs/5.7/eloquent#events

    如果你为你的模型创建一个观察者,你可以使用这样的东西:

    public function deleting($model)
    {
        if($model->someRelation->count()) {    // replace ->someRelation with whatever you want to check
            return false;   // prevent delete
        }
        if($model->anotherRelation->count()) {
            return false;   // prevent delete
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-08
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      相关资源
      最近更新 更多