title: laravel Eloquent join and Object-relationship mapping
body: <p>Ok so i'm kind of newish to eloquent and laravel (not frameworks tho) but i hit a wall here. 
  I need to perform some queries with conditions on different tables, so the eager load (<code>::with()</code>) is useless as it creates multiples queries.</p>
  
  <p>Fine, let use the join. But in that case, it seems that Laravel/Eloquent just drops the concept of Object-relationship and just return a flat row.
   By exemple:</p>
  
  <p>if i set something like</p>
  
  <pre><code>$allInvoicesQuery = Invoice::join('contacts', 'contacts.id', '=', 'invoices.contact_id')-&gt;get();
  </code></pre>
  
  <p>and then looping such as </p>
  
  <pre><code>foreach ($allInvoicesQuery as $oneInvoice) {
       ... working with fields
  }
  </code></pre>
  
  <p>There is no more concept of <code>$oneInvoice-&gt;invoiceFieldName</code> and <code>$oneInvoice-&gt;contact-&gt;contactFieldName</code></p>
  
  <p>I have to get the contacts fields directly by <code>$oneInvoice-&gt;contactFieldName</code>
  On top of that the same named columns will be overwrited (such as <code>id</code> or <code>created_at</code>).</p>
  
  <p>So my questions are:</p>
  
  <p>Am i right assuming there is no solution to this and i must define manually the field in a select to avoid the same name overwritting like</p>
  
  <p>Invoice::select('invoices.created_at as invoice.create, contacts.created_at as contact_create)</p>
  
  <p>In case of multiple joins, it makes the all query building process long and complex. But mainly, it just ruins all the Model relationship work that a framework should brings no?</p>
  
  <p>Is there any more Model relationship oriented solution to work with laravel or within the Eloquent ORM?</p>