【发布时间】:2018-06-25 13:39:23
【问题描述】:
我一直在查看有关堆栈溢出的多个问题以及雄辩的文档,但我似乎无法找到仅当变量为真时如何加入表。
我有一个雄辩的问题。
$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 的,我希望用户能够指定他们是否希望某些表包含在返回结果中。我还没有找到关于这种功能的帖子。当我使用 test if 语句运行示例代码时,出现以下错误:
Parse error: syntax error, unexpected '}'
【问题讨论】:
-
错误本身告诉你,我也看到了一些语法错误。也许这可以帮助您处理这段代码。
-
是的,我意识到错误告诉我您不允许在加入回调中使用大括号。我在下面回答了我的问题。这个问题与一个类似的语法或函数有关,可以用来完成我上面试图完成的事情。上面的邮政编码中也没有其他语法错误,只有
if($test) {}段,这是我的问题所在。
标签: laravel eloquent lumen laravel-eloquent laravel-query-builder