创建搜索过滤器,并且其中一个字段来自其他表

戴夫LV2

因此,我正在尝试创建一个搜索过滤器。

我创建了这个:

$data = Input::all();
$ads = new Ads();

if($data['description']) {
    $ads = $ads->where('description', 'LIKE', '%' . $data['description'] . '%');
}

if($data['min']) {
    $ads = $ads->where('price', '>', $data['min']);
}

if($data['max']) {
    $ads = $ads->where('price', '<', $data['max']);
}

我有$ data ['city']。但是问题是$ ads没有城市,它有userID,每个用户都有它的城市。我该怎么做,但实际上会搜索拥有此广告的用户,并检查城市是否像被搜索的城市一样。

我试过这样的事情:

    $resultAds = $ads;

    if($data['city']) {
        foreach($resultAds as $rAds) {
            if($rAds->compareCity($data['city'])) {
                $resultAds[] = $rAds;
            }
        }
    }

    $resultAds = $resultAds->paginate(12);

但这不起作用。它给出以下错误:Symfony \ Component \ Debug \ Exception \ FatalErrorException(E_ERROR)调用非对象上的成员函数compareCity()并且$ rAds是否用于某种原因的布尔值?我认为那是因为我还没有完成-> get(); 但我无法做到这一点,因为我想对结果进行分页。

感谢帮助。

因此,现在我的问题是创建一个代理商以将用户名移出“用户”表。

广告表

id
description
price
userID

用户表

id
username
password
phone
city

我需要联系,以便根据用户从广告表中获取用户ID的用户所在的城市来获取所有带有请求城市的广告。

戴夫LV2

所以答案是这样的:

if($data['city']) {
    $ads = $ads->whereHas('users', function ($q) use($data) {
        $q->where('city','LIKE','%'.$data['city'].'%');
    });
}

这是有效的解决方案。这是从其他答案中得出的。

我需要在模型中添加以下内容:

public function users() {
    return $this->belongsTo('User');
}

现在就可以了。谢谢大家的帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建其中一个字段不是主键的关联表?

来自分类Dev

Logstash grok过滤器不适用于最后一个字段

来自分类Dev

根据过滤器获取一个字段的值

来自分类Dev

django模型过滤器的一个字段

来自分类Dev

Elasticsearch-配置,过滤器插件,将一个字段分成两个字段

来自分类Dev

从表中得到一个随机记录,其中一个字段为空

来自分类Dev

搜索列表中的行,其中一个字段匹配字符串数组中的任何值

来自分类Dev

AngularJS:控制器中除一个字段外的所有字段上的过滤器

来自分类Dev

如何构建其中一个字段引用另一个字段的结构

来自分类Dev

如何创建过滤器以在列出其他对象之前显示一个对象?

来自分类Dev

访问表单-从代码更新一个字段过滤器,而不会与现有过滤器冲突

来自分类Dev

SOLR:将2个字段复制到另一个字段并将过滤器添加到该新字段

来自分类Dev

当有时仅出现其中一个字段时,对ElasticSearch中的两个字段进行过滤

来自分类Dev

等于两个结构,但想更改其中一个字段

来自分类Dev

PHP插入MySQL数组,其中一个字段是在第一个SQL语句中创建的AI1数据库字段

来自分类Dev

使用来自其他表的过滤器进行搜索

来自分类Dev

ng-repeat中的多个过滤器,其中一个需要精确匹配

来自分类Dev

Django-对两个字段进行OR过滤,其中一个在相关表中

来自分类Dev

填写其中一个字段后,不需要两个字段之一

来自分类Dev

SQL Server-从同一视图表中的其他字段创建值一个字段

来自分类Dev

NSPredicate过滤器数组的第一个字符

来自分类Dev

DataView过滤器并返回一个字符串数组

来自分类Dev

如何提取字段的一部分并将其存储到logstash过滤器中的另一个字段中?

来自分类Dev

TSQL,联接到多个字段,其中一个字段可以为NULL

来自分类Dev

如何更改现有索引中一个字段的映射?弹性搜索

来自分类Dev

如何更改现有索引中一个字段的映射?弹性搜索

来自分类Dev

当其中一个字段为空但您需要一个值时,查找最近的数字

来自分类Dev

SQL Server:插入一个复杂的选择查询,其中一个字段是不同的

来自分类Dev

从 3 个列表创建一个字典,其中一个是嵌套列表

Related 相关文章

  1. 1

    如何创建其中一个字段不是主键的关联表?

  2. 2

    Logstash grok过滤器不适用于最后一个字段

  3. 3

    根据过滤器获取一个字段的值

  4. 4

    django模型过滤器的一个字段

  5. 5

    Elasticsearch-配置,过滤器插件,将一个字段分成两个字段

  6. 6

    从表中得到一个随机记录,其中一个字段为空

  7. 7

    搜索列表中的行,其中一个字段匹配字符串数组中的任何值

  8. 8

    AngularJS:控制器中除一个字段外的所有字段上的过滤器

  9. 9

    如何构建其中一个字段引用另一个字段的结构

  10. 10

    如何创建过滤器以在列出其他对象之前显示一个对象?

  11. 11

    访问表单-从代码更新一个字段过滤器,而不会与现有过滤器冲突

  12. 12

    SOLR:将2个字段复制到另一个字段并将过滤器添加到该新字段

  13. 13

    当有时仅出现其中一个字段时,对ElasticSearch中的两个字段进行过滤

  14. 14

    等于两个结构,但想更改其中一个字段

  15. 15

    PHP插入MySQL数组,其中一个字段是在第一个SQL语句中创建的AI1数据库字段

  16. 16

    使用来自其他表的过滤器进行搜索

  17. 17

    ng-repeat中的多个过滤器,其中一个需要精确匹配

  18. 18

    Django-对两个字段进行OR过滤,其中一个在相关表中

  19. 19

    填写其中一个字段后,不需要两个字段之一

  20. 20

    SQL Server-从同一视图表中的其他字段创建值一个字段

  21. 21

    NSPredicate过滤器数组的第一个字符

  22. 22

    DataView过滤器并返回一个字符串数组

  23. 23

    如何提取字段的一部分并将其存储到logstash过滤器中的另一个字段中?

  24. 24

    TSQL,联接到多个字段,其中一个字段可以为NULL

  25. 25

    如何更改现有索引中一个字段的映射?弹性搜索

  26. 26

    如何更改现有索引中一个字段的映射?弹性搜索

  27. 27

    当其中一个字段为空但您需要一个值时,查找最近的数字

  28. 28

    SQL Server:插入一个复杂的选择查询,其中一个字段是不同的

  29. 29

    从 3 个列表创建一个字典,其中一个是嵌套列表

热门标签

归档