在laravel中获得一组关系

时间:2018-04-10 16:57:37

标签: laravel relationship laravel-eloquent

我使用了laravel 4.2并且我有一个模型Items,该模型项属于模型Category,模型Category有一些文本和一个漂亮的slug网址搜索。

项目型号:     

class Item extends Eloquent{
 public function category()
    {
        return $this->belongsTo('Category','cat_id');
    }
}

类别模型:     

class Category extends Eloquent{
}

如果我Items::with('category')->get(),它将检索此信息:

//items
[
 {
    "id": 26,
    "cat_id": 14,
    "category": {
       "id": 14,
       "slug": 'unique-text',
       "description": 'text',
    }
  },
  {
    "id": 25,
    "cat_id": 13,
    "category": {
       "id": 13,
       "slug": "unique-text2",
       "description": "text2",
   },
   {
    "id": 25,
    "cat_id": 13,
    "category": {
       "id": 13,
       "slug": "unique-text2",
       "description": "text2",
   },
]

问题

如何在不必访问每个categories的情况下检索item形式的关系,以及如何只检索那些不重复的categories

例如,在上面显示的数据中,有2个项目具有相同的category id = 13

我只想在分组中显示Categories: text / text2

EDITED

可以过滤Item,因此我需要基于Item查询结果的类别,所以如果我Item::where('price','>','20')-with('category')->get()我需要对这些项目的类别进行分组,我不需要所有物品。

2 个答案:

答案 0 :(得分:0)

您可以Sub clickButton() Dim ie As Object Dim Btn As Object 'Late Binding Set ie = CreateObject("InternetExplorer.Application") On Error GoTo Catch ie.Visible = True ie.navigate "https://yourwebsite.com/" While ie.ReadyState <> 4 Or ie.Busy: DoEvents: Wend 'LOOP EACH CLASS ELEMENT For Each Btn In ie.Document.getElementsByClassName("button") If Btn.innertext = "Edit" Then Btn.Click End If Next Btn 'CLOSE INSTANCE OF IE Catch: ie.Quit Set ie = Nothing End Sub 或尝试编写原始查询以获取不同的类别,但类别&gt; get将按照您的意愿完成工作。

答案 1 :(得分:0)

您可以获得这样的独特类别:

$categories = Items::with('category')->get()->pluck('category')->unique();