Laravel 4: Selecione linha se existe uma relação consultando a relação

Eu estou tentando consultar uma tabela de produtos e deseja retornar uma coleção se existir uma relação.

Iteração 1 abaixo de consultastodos linhas na tabela de produtos, e preguiçoso carrega a mesa de metais se$name fósforos. Isto está errado.

Minha rota:

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

Meu 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());
} 

eu quero $products para exibir semetal.name = $metal. por exemplo. algo como:

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

Solução usando parte da resposta da Glad To Help:

Isso fornece uma abordagem alternativa 2, sem a necessidade de junções.

http://paste.laravel.com/WC4

questionAnswers(1)

yourAnswerToTheQuestion