【问题标题】:Product search Query from multiple model多型号产品搜索查询
【发布时间】:2022-01-16 21:43:50
【问题描述】:

我有两个数据库表,一个是产品,另一个是产品库存。我需要使用名称、条形码和 SKU 搜索产品。问题是产品库存表中的产品 SKU。我该如何管理这些事情。

// $productSku = ProductStock::where('product_id',$product->id)->first();
$product = Product::where('name', 'LIKE', $request->keyword.'%')
    /* ->orWhere($productSku, 'LIKE', $request->keyword.'%') */
    ->orWhere('barcode', 'LIKE', $request->keyword.'%')
    ->orderby('id','desc')
    ->get();

$output = '';

if (count($product) > 0) 
{
    $output = '<ul class="list-group">';
    
    foreach ($product as $row)
    {
        $output .= '<li class="list-group-item"  onclick="addProductCart('.$row->id.')" >';
        $output .= '<div class="product d-flex align-items-center">';

        $output .= '<div class="img mr-2">';
        $output .= '<img src="'.uploaded_asset($row->thumbnail_img).'" width="30" alt="Product Image">';
        $output .= '</div>';

        $output .= ' <div class="pro-nam">'.$row->name.'</div></div></li></ul>';
    }
}
else
{
    $output = '<ul class="list-group">';
    $output .= '<li class="list-group-item">'.'No results'.'</li>';
    $output .= '</ul>';
}

return $output;

【问题讨论】:

    标签: sql ajax laravel


    【解决方案1】:

    这可能有一种 SQL 方法,但我通常在这种情况下做的是创建一个空数组,然后从数据库(在本例中为产品)获取必要的主数据,然后循环这些数据以使用for 或 foreach 循环。因此,当您获得 ID 时,使用它来查询辅助数据,在本例中为 product-stock(我假设您使用此表上的产品 id 来关联两者?)并将它们放在一个临时数组中,即然后推到主要的。示例如下:

    $productData = array(); // Empty main array
    $products = Product::all();
    
    foreach ($products as $product) {
    $id = $product->id; // Get the ID of the product
    $stock = ProductStock::select('sku')->where('product_id', $id)->get();
    $tempArray = [
    'id' => $id,
    'name' => $product->name,
    'barcode' => $product->barcode,
    'sku' => $stock->SKU]
    array_push($productData, $tempArray); // Creates nested arrays in the main array
    }
    

    请记住,您可能需要修改集合定位,但应该这样做。要获取数据,只需遍历主数组即可。不过,可能有一种方法可以使用 SQL 来做到这一点,所以这只是以防万一你赶时间或不在乎。

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 2018-12-28
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2013-12-12
      相关资源
      最近更新 更多