如何解决Laravel雄辩的查询生成器与包装的``哪里''没有关系
我制作了一个package for searching models with JSON input,其中有一个 data(){
return {
mainStr: "Hello,my name is Eldar and I'm web-developer",showStr: ''
}
},methods:{
showString() {
for (let i = 0; i < this.mainStr.length; ++i) {
this.delay(i);
}
},delay(i){
function delay() {
setTimeout(() => {
this.showStr += this.mainStr.charAt(i)
},2000)
}
}
},mounted(){
this.showString();
}
宏在雄辩模型中公开。
在尝试包装查询时,我注意到一种奇怪的行为,因此我想知道自己是否做错了事。
例如,像这样加载关系:
search
在所有模型中加载关系,结果看起来都很好。
将其包装在附加的Builder::macro('search',function () {
return $this->with('someRelation');
});
子句中将导致它仅加载模型,而没有任何关联:
where
为什么这行不通?包裹在外部Builder::macro('search',function (array $input) {
return $this->where(function (Builder $builder) {
$builder->with('someRelation');
});
});
中时,如何使其具有负载关系?
解决方法
我无法解释为什么它不起作用的细节,但我想以下两个选项之一可以解决它:
Builder::macro('search',function (array $input) {
return $this->where(function (Builder $builder) {
return $builder->with('someRelation'); // note added 'return'
});
});
或
Builder::macro('search',function (array $input) {
return $this->where(function (Builder $builder) {
// return whatever
})->with('someRelation');
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。