Попробуйте это
$products = DB::table('items')
->join('products', 'items.product_id', '=', 'products.id')
->where('shopping_cart_id', '=' , $id)
->get();
Или используя отношения
class ShoppingCart extends Model
{
public function items()
{
return $this->hasMany('App\Item');
}
}
class Item extends Model
{
public function product()
{
return $this->belongsTo('App\Product');
}
}
, затем используйте
$shopping_cart = ShoppingCart::with(['items', 'items.product'])->find($id);
Обновленный ответ со всем продуктом
Product::select('products.id', 'products.title', 'products.price', 'products.imageUrl',
DB:raw('(CASE WHEN items.qunatity IS NULL THEN 0 ELSE items.qunatity END) as quantity')
->leftJoin('items', function($join) use($id){
$join->on('products.id', '=', 'items.product_id')
->on('items.shopping_cart_id', '=', $id);
})->get();