我想扩展 Eloquent Builder 以支持搜索功能。在我的服务提供商内部,我添加了以下内容:
Builder::macro('search', function (string $searchBy) {
...
}
哪个有效。我现在可以在我的模型上调用搜索方法。
我遇到的问题是其中的逻辑变得相当复杂,我不希望它成为一个大脚本,但是拆分为函数不起作用,因为回调内部的作用域实际上来自 Eloquent macroBuilder .
所以这不起作用:
public function foo()
{
dd('bar');
}
public function boot()
{
Builder::macro('search', function (string $searchBy) {
$this->bla();
...
}
}
有没有一种方法可以在不经历扩展完整 Eloquent Builder 的麻烦的情况下使用函数?
冉冉说