Laravel 4: Seleccionar fila si existe una relación mediante la consulta de relación

Estoy intentando consultar una tabla de productos y quiero que devuelva una colección si existe una relación.

Iteración 1 debajo de las consultastodos filas en la tabla de productos, y carga lenta la tabla de metales si$name partidos. Esto está mal.

Mi ruta

Route::group(array('prefix' => '{api}/v1'), function()
{
    Route::controller('products', 'Api\V1\ProductController');
});

Mi controlador:

public function getFilter($metal = null) {
    $products = $this->product;
    if ($metal) {
        $products->with('metal', function($query, $metal) {
            $query->where('name', $metal);
        });
    }
    return Response::api($products->get());
} 

quierosolamente $products para mostrar simetal.name = $metal. p.ej. algo como:

$this->products->where('metal.name', $metal)->get;

Solución usando parte de la respuesta de Glad To Help:

Esto proporciona un enfoque alternativo 2, sin la necesidad de uniones.

http://paste.laravel.com/WC4

Respuestas a la pregunta(1)

Su respuesta a la pregunta