2015-08-28 50 views
0
$stores = $store->where('vendor_id', '=', $id)->get(); 
$products = Product::where('store_id', '=', $stores->id)->get(); 

$stores有多個對象,我怎麼能傳遞多個對象到另一個查詢,如下圖所示。需要匹配所有idStore模型返回。使用first()只返回一個對象,但在這種情況下需要獲得與這些商店相關的商店和產品all如何通過多個對象laravel雄辯模型

回答

1

您可以使用whereIn()來達到此目的。使用你的例子爲基礎:

$stores = $store::where('vendor_id', $id)->lists('id'); 
$products = Product::whereIn('store_id', $stores)->get(); 
0

我認爲你需要這樣的事情哪裏$id是一個給定的參數或變量:

$stores_id = Store::all()->where('vendor_id', $id)->lists('id'); 
$products = DB::table('products')->whereIn('id', $stores_id)->get(); 

這是假設你使用的是默認的表名的不同的型號,即products表格名稱爲Product型號。

方法lists($column_name)將返回一個包含給定列元素的數組。 whereIn($array)子句的作用與SQL中的ÌN子句相同。

注意:當使用where時,您不必輸入=符號,因爲如果將其留空,Laravel會解釋它。

0

假設你已經創建了你的模型關係,你可以這樣做。

$stores = $store -> with('products') -> where('vendor_id',$id) ->first(); 

該查詢將獲取所選商店的所有商品。