当前位置: 首页 > 知识库问答 >
问题:

如何使雄辩的范围与那里有喜欢的sql查询下面?

公西修文
2023-03-14

如何使像下面的sql查询这样有说服力的范围

表属性(id,标题,段塞,category_id,location_id,图像)

表类别(id,名称,段塞)

表城市(id,名称,鼻涕虫)

我需要的简单sql查询

Select * from property 
join category on property.category_id=category.id 
join city on property.location_id = city.id
where category.name = $query and city.name=$query

我想在属性模型中创建雄辩的作用域

共有1个答案

周锐
2023-03-14

这在人际关系中很容易。

根据您的查询,假设这是您的Property模型:

class Property extends Model
{
    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function city()
    {
        return $this->belongsTo(City::class, 'location_id');
    }

现在我可以这样写我雄辩的问题:

$query = 'Example';

$properties = Property::where('name', $query)
    ->whereHas('category', function (Builder $builder) use ($query) {
        $builder->where('name', $query);
    })->get();

请注意,Builder是从Illumate\Database\Eloquent\Builder导入的。您还可以将与('类别','城市')添加到上面的查询中,以便急切地加载这些关系。

 类似资料:
  • 我工作太多mysql大视图。我不想使用雄辩模型的意见。 我创建了“ViewBalance\Support\Facades\DB”。一切都如我所愿。 但我需要为公司范围设置init()方法。 如果没有init()方法,如何使用全局作用域? 视图模型 控制器

  • 我不能用一个简单的有说服力的查询来删除一行。即使在我使用雄辩时也无法从数据库中获取数据。我正在变空。但是,在DB查询方法中,至少我得到了数据但不能删除。以下是我的代码: 我的目标是使用雄辩的数据,然后从数据库中删除。 日历事件。php模型

  • 问题内容: 是否可以在一个查询中将多个SQL LIKE通配符串在一起-像这样? 目的是查找同时包含通配符但没有特定顺序的记录。 问题答案: 正确的SQL语法是:

  • 我有两个模型。模型有一个(关系)。 关于模型,我有以下关系:

  • 问题内容: 这个问题与另一个帖子非常相似 我基本上想使用mongodb版本的sql“ like”’%m%’运算符 但是在我的情况下,我正在为mongodb使用java api,而另一篇文章使用的是mongodb shell 我尝试了其他线程中发布的内容,并且工作正常 但是在Java中,我在BasicDBObject上使用put方法,并将其传递到DBCollections对象的find()方法中 但

  • 在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da