php - Laravel 查询构建器具有 where 函数的限制

标签 php laravel laravel-5

我试图按用户可以做出的选择进行排序,其中项目存储在数据库的“类型”表中。我正在使用 Laravel 5.2。

多重选择功能的屏幕截图(丹麦语文本):

enter image description here

例如,他们可以选择(在多项选择中):

  • 苹果
  • 香蕉
  • 椰子
  • 西瓜

如果他们只选择 Apple,则应显示所有 Apple - 很简单。 但如果他们同时选择苹果和椰子,则应同时显示苹果和椰子。

$query = User::where('type', '=', 'Apple')->get(); 

得到所有的苹果。

但如果我这样做:

$query = User::where('type', '=', 'Apple')->where('type', '=', 'Coconut')->get();

仅显示同时选择 Apple 和 Coconut 的用户。用户无法在后端同时选择苹果和椰子,因此不会显示任何用户。

如何构建一个查询,其中在后端选择了 Apple 或 Coconut 类型的用户将通过构建一个查询来显示,该查询不会将输出限制为仅当用户选择了两者时(这是不可能的)对于用户)?

最佳答案

您可以使用:

$query = User::where(function($query) {
$query->where('type', '=', 'Apple')
->orWhere('type', '=', 'Coconut');
)}->get();

这将同时得到椰子和苹果..

关于php - Laravel 查询构建器具有 where 函数的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999693/

相关文章:

php - MySQL 搜索非 ascii 字符无法按 LIKE 预期工作

php - 如何在没有对话框的情况下保存用 PHPExcel 创建的 Excel 文件?

php - 与急切加载的 Eloquent 关系

php - Laravel Eloquent setAppends() 到整个模型集合?

validation - 如何在 Laravel4 中验证选择框输入

php - 如何在我的表中获取最后一个 reasonID?

php - 正则表达式仅检查每行的第一个匹配项

拉拉维尔 5.2 : How to access Request & Session Classes from own Event Listener?

php - Eloquent:还需要从此查询返回 "distance"(坐标)

php - 连接到 laravel 5.1 中的数据库问题