Уровень 4: Выберите строку, если существует отношение, путем запроса отношения
Я пытаюсь запросить таблицу продуктов и хочу, чтобы она возвращала коллекцию, если существует отношение.
Итерация 1 ниже запросывсе строки в таблице продуктов, и ленивый загружает таблицу металлов, если$name
Спички. Это не верно.
Мой маршрут:
Route::group(array('prefix' => '{api}/v1'), function()
{
Route::controller('products', 'Api\V1\ProductController');
});
Мой контроллер:
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());
}
я хочутолько $products
отображать, еслиmetal.name = $metal
, например что-то вроде:
$this->products->where('metal.name', $metal)->get;
Решение с использованием части ответа «Рад, чтобы помочь»:
Это обеспечивает альтернативный подход 2, без необходимости объединений.