title: Laravel Query Builder: Join creates two objects instead of one object with an array
body: <p>The structure of models/tables is:</p>
  <p><strong>1. ShopItem</strong></p>
  <ul>
  <li>shopitem_id</li>
  <li>shopitem_title</li>
  <li>shopitem_price</li>
  </ul>
  <p><strong>2. Colours</strong></p>
  <ul>
  <li>colour_id</li>
  <li>colour_name</li>
  </ul>
  <p><strong>3. ShopItemColours</strong></p>
  <ul>
  <li>id</li>
  <li><strong>shopitem_id   (foreign key)</strong></li>
  <li><strong>colour_id     (foreign key)</strong></li>
  </ul>
  <p>I used query builder:</p>
  <pre><code>$shopItems = ShopItem::where('shopitem_id', 33)
          -&gt;join('shop_item_colours', 'shop_item_colours.shop_item_id', '=', 'shop_items.id')
          -&gt;join('colours', 'colours.colour_id', '=', 'shop_item_colours.colours_id')
          -&gt;get();
  </code></pre>
  <p>Expected output is like this, where the ShopItemColours are an array.</p>
  <pre><code>{
      'shopitem_id': 33
      'shopitem_title': 'item title'
      'shopitem_price': 123
      'colour_name': ['black', 'white']
  }
  </code></pre>
  <p>However, instead of a single row with an array of ShopItemColours, I get two rows, each row having different Colour item.</p>
  <pre><code>[
      {
          'shopitem_id': 33
          'shopitem_title': 'item title'
          'shopitem_price': 123
          'colour_name': 'black'
      },
      {
          'shopitem_id': 33
          'shopitem_title': 'item title'
          'shopitem_price': 123
          'colour_name': 'white'
      }
  ]
  </code></pre>