我使用第三方。我从这里开始:https://github.com/andersao/l5-repository
我在文件存储库中的功能是这样的:
public function displayList($year, $id = NULL)
{
$clauses = ['year' => $year];
if(isset($id)) {
$clauses = array_merge($clauses, ['id' => $id]);
}
$query = Self::orderBy('programcode')
->orderBy('accountcode')
->findWhere($clauses)
->paginate(1);
return $query;
}
执行时,会出现如下错误:Method paginate does not exist.
。
我尝试删除->findWhere($clauses)
。有用。没错。
Findwhere和paginate显然无法同时运行
这个问题有解决方法吗?
答案 0 :(得分:2)
这是因为->findWhere(...)
结束了查询with ->get()
并返回结果(eloquent collection)。
您尝试做的是在eloquent collection上调用->paginate(...)
方法。它实际上是query builder上的一种方法。
<强> 解决方案 强>
$query = Self::orderBy('programcode')
->orderBy('accountcode')
->applyConditions($clauses)
->paginate(1);
修改强>
好的,->applyCondtions()
不会返回该对象,因此您无法将方法链接起来。试试这个:
$query = Self::orderBy('programcode')
->orderBy('accountcode');
$query->applyConditions($clauses);
$query = $query->paginate(1);
答案 1 :(得分:2)
像这样:
@ResponseBody
@GetMapping("/test6")
Mono<List<String>> test6(){
List<String> indecies = Arrays.asList("1","2");
return Flux.fromIterable(indecies)
.flatMap(k -> Flux.fromIterable(myRepository.getList(k)).subscribeOn(Schedulers.parallel()),2)
.collectList();
}