title: Laravel: Query Builder creates plural name: columns_id instead of column_id
body: <p>I have my class "Product_reviews", which is binded to the class "Products" like this:</p>
  
  <p><strong>Products.php:</strong></p>
  
  <pre><code>public function product_reviews()
  {
      return $this-&gt;hasMany('App\Product_reviews');
  }
  </code></pre>
  
  <p><strong>Product_reviews.php:</strong></p>
  
  <pre><code>public function products()
  {
      return $this-&gt;belongsTo('App\Products');
  }
  </code></pre>
  
  <p>Foreign key for table "Product_reviews" is 'product_id'.</p>
  
  <p>So, in the controller I'm trying to get all data:</p>
  
  <pre><code>$products = Products::with('product_reviews')-&gt;get();
  </code></pre>
  
  <p>And... I have an error saying that product_id can't be found:</p>
  
  <pre><code>SQLSTATE[42S22]: Column not found: 1054 Unknown column 'product_reviews.products_id' in 'where clause' (SQL: select * from `product_reviews` where `product_reviews`.`products_id` in (1, 2))
  </code></pre>
  
  <p>Correct me if I'm wrong, but I think the query builder is adding '_id' to the class' name. It can be fixed by going to the table "product_reviews" and changing 'product_id' by 'products_id'... Or maybe I could pass all classes' and tables' names to singular.</p>
  
  <p>So my question is: What other options do I have in order to make the query builder know the proper column's name?</p>