我一直在查看关于堆栈溢出的多个问题,以及在雄辩的文档中,我似乎无法找到如果变量为真,如何加入表。
我有我雄辩的查询。
$test = false;
$orderBy = 'name'; // Default order by
$sortBy = 'asc'; // Default sort by
$wheres[] = ['is_deleted', '=', $is_deleted];
Comm::where($wheres)
->select($selects)
->join('div', function($join) use($test) {
if($test) {
$join->on('Comm.div_id', '=', 'div.div_id')
}
}
->orderBy($orderBy, $sortBy)
->paginate($per_page, '*', 'page', $page);
现在我知道您可以使用文档连接方法加入,例如
->join('div', 'comm.div_id', '=', 'div.div_id')
反正有没有完成我要做的有条件添加?这是针对api的,我希望用户能够指定他们是否希望返回结果中包含某些表。我还没能找到关于这种功能的帖子。当我使用测试if语句运行我的示例代码时出现错误:
Parse error: syntax error, unexpected '}'
答案 0 :(得分:0)
经过一段时间的反复试验,我发现你可以使用条件句来帮助加入表格。
$comm = Comm::select($selects)
->when($useJoins, function($query) use ($withs) {
return $query->with($withs);
})
->orderBy($orderBy, $sortBy)
->paginate($per_page, '*', 'page', $page);
我将此留在这里供将来参考,因为此类加入的数据不是很多。我也尝试过使用雄辩的连接方法,这些工作我只是把它留在一个数组中用于显示目的。