繁体   English   中英

Laravel 进入查询执行前的时刻

[英]Laravel tap into moment before query execution

我正在使用 Laravel 范围来限制最终用户可以根据一些提供的输入看到的内容,但是对于我当前的用例,这不再可以接受。

在应用其他查询之前,我想看看正在调用什么 Eloquent 方法,或者至少看看结尾的 SQL 是否正在执行SELECTINSERT或其他任何实际执行之前。

我可以看到Model在构造函数中加载作用域,这使我得出结论,将在没有作用域的情况下执行的实际查询在更远的地方,但是我似乎找不到它。

在执行实际查询之前,我是否可以在某个点插入范围(或类似的等效项)?

编辑:更令人困惑的是all()方法在 Eloquent Builder 中没有 go ......

我认为你可能会抛出一个错误,如下所示:

throw new Exception()

然后使用调试html output。 它应该有一个选项卡,显示最后的查询。 不是最美丽的想法,但也许它有效。

我想做的事情是不可能的。 范围在 model 实例化时很早就被加载和应用(在任何 Eloquent 事件被触发之前)。

我有两个想法:一个在这篇文章中,一个在这个 没有一个奏效。 在后者中,您可以看到我需要的用例是什么,以及我最终是如何解决它的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM