【问题标题】:what database triggers have been executed in Laravel在 Laravel 中执行了哪些数据库触发器
【发布时间】:2018-04-26 14:57:08
【问题描述】:

现在我正在使用一个中间件来记录通过query log 在 Laravel 中执行的所有查询。我的问题是是否可以记录数据库触发器发生的操作。

例如,使用 onDelete 级联删除模型时。查询日志只显示删除查询,不显示子查询。

【问题讨论】:

  • 级联由 mysql 处理,这些查询发生在“后台”/“laravel 范围之外”,如果你想在 laravel 中跟踪它们,我建议删除自动触发器,并删除它的孩子在他们父母的::deleting() 事件中。

标签: mysql laravel logging


【解决方案1】:

触发器和级联删除超出了 Laravel 的范围,这些仅由 MySql 处理。

如果您不删除触发器和 Cascade,您仍然可以记录查询。

E.G

在您的模型中,如果您想删除子行或关联行,您可以使用

protected $cascadeDeletes = ['relation', 'relation2'];

$cascadeDeletes 删除也将删除整个相关模型。这些查询将被 laravel Query Logger 记录下来。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2013-06-21
    • 2023-04-06
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多