Laravel数据库查询生成器关系

时间:2018-11-21 14:14:33

标签: laravel vue.js vuejs2

我有一个productsproduct_image表。在我的product_image表中,有一个外键:product_id

我想要的是在我的表中仅获得每个产品的1张图像,这里最好的示例是电子商务网站,其中所有产品列表仅显示1张图像,这就是我计划的处理我的代码。

但是我代码中的问题是我的产品列表的输出将取决于它们具有多少张图像。

例如:

  • 产品1有2张图片
  • 产品2有1张图片
  • 产品3有3张图片

我的代码的输出将是

产品1,产品1,产品2,产品3,产品3,产品3

我在laravel中有此代码

$products = DB::table('products')
        ->where('product_name','like',escape_like($request->search_product).'%')
        ->orderBy('product_name','asc')
        ->join('product_image','products.id','=','product_image.product_id')
        ->select('products.*','product_image.*')
        ->paginate($request->total_products);

我在Vue中有此代码

<div class="col-md-4" v-for="product in products">
        <div class="card mt-3">
            <img class="card-img-top" :src="product.path" alt="Product Image">
            <div class="card-body">
                <h5 class="card-title">{{ product.product_name }}</h5>
                <div class="card-text">
                    <p v-if="product.status == 'Sale'" class="old-price float-right"><del>Php. {{ product.price.toFixed(2) }}</del> </p>
                    <p >Php. {{ product.price.toFixed(2) }}</p>

                    <div class="text-center">
                        <a href="#" class="btn btn-primary" title="Edit"><i class="far fa-edit"></i></a>
                        <a href="#" class="btn btn-danger" title="Delete"><i class="fas fa-trash-alt"></i></a>
                    </div>
                </div>
            </div>
        </div>
    </div>

0 个答案:

没有答案