0
제품 테이블을 쿼리하고 관계가 존재하는 경우 컬렉션을 반환하려고합니다.Laravel 4 : 관계를 쿼리하여 관계가 존재하는 경우 행을 선택하십시오.
반복 한 아래 모든 제품 테이블의 행, 게으른로드 금속 테이블 $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)를 제공합니다 같은.
는 * (http://laravel.com/docs/eloquent#eager-loading) * 열망로드 제약을 참조 [문서]에서보세요 . 배열을 * with * 함수에 대신 전달해보십시오 :'$ products-> with (array ('metal'=> function ($ query) use ($ metal) ...' –