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 querosó $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.