为了账号安全,请及时绑定邮箱和手机立即绑定

如何在laravel中循环一个数据

如何在laravel中循环一个数据

PHP
慕工程0101907 2021-11-05 14:38:16
我有按 id 产品打印条码的页面像这样 :我希望页面显示 20 个条形码,如下图所示我只有 1 个条码数据,但我想在页面上显示多达 20 个条码……所以,当我打印一个条码时,我可以打印多达 20 个条码,而不仅仅是一个我的控制器:public function barcodes($id){    $title = $this->title;     $products = Product::find($id);    $vars = compact('products');    $data = ['products' => $products];    return view($title.'.barcodes',compact('data','products'));}刀片视图:<div class="row">   <div class="col-12">      <div class="card-box">         <div class="header-title">             <a href="#" class="btn btn-info btn-sm" onclick="printDiv('printableArea')" >            <i class="fa fa-print"></i>            Print            </a>         </div>         <div class="panel-body" id="printableArea">            <div class="col-md-2" style="padding: 10px; border: 1px solid #adadad;display:inline-block;line-height:16px !important; " align="center">               <p>{{$products->name}}</p>               <?php echo '<img src="data:image/png;base64,' . DNS1D::getBarcodePNG($products->code, "c128A",1,40,array(1,1,1), true) . '"   />'; ?>               <br>               <small style="font-size: 8px !important;"><b>{{$products->code}}</b></small>               <p style="line-height: 12px !important; font-size: 8px !important;">                  <b>Price: {{$products->sale_price}} </b>               </p>            </div>         </div>      </div>   </div></div><script>   function printDiv(divName) {       var printContents = document.getElementById(divName).innerHTML;       var originalContents = document.body.innerHTML;       document.body.innerHTML = printContents;       window.print();       document.body.innerHTML = originalContents;   }</script>
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

这将遍历每个 $product


 @foreach ($products as $product)

              <div class="card-box">

             <div class="header-title"> 

                <a href="#" class="btn btn-info btn-sm" onclick="printDiv('printableArea')" >

                <i class="fa fa-print"></i>

                Print

                </a>

             </div>

             <div class="panel-body" id="printableArea">

                <div class="col-md-2" style="padding: 10px; border: 1px solid #adadad;display:inline-block;line-height:16px !important; " align="center">

                   <p>{{$products->name}}</p>

                   <?php echo '<img src="data:image/png;base64,' . DNS1D::getBarcodePNG($products->code, "c128A",1,40,array(1,1,1), true) . '"   />'; ?>

                   <br>

                   <small style="font-size: 8px !important;"><b>{{$products->code}}</b></small>

                   <p style="line-height: 12px !important; font-size: 8px !important;">

                      <b>Price: {{$products->sale_price}} </b>

                   </p>

                </div>

             </div>

          </div>

       </div>

    @endforeach

https://laravel.com/docs/5.8/blade#loops


查看完整回答
反对 回复 2021-11-05
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

您可以使用的一种方法是foreach 循环。


在你的情况下,你可以做这样的事情。


@foreach($products AS $product)

    <div class="row">

       <div class="col-12">

          <div class="card-box">

             <div class="header-title"> 

                <a href="#" class="btn btn-info btn-sm" onclick="printDiv('printableArea')" >

                <i class="fa fa-print"></i>

                Print

                </a>

             </div>

             <div class="panel-body" id="printableArea">

                <div class="col-md-2" style="padding: 10px; border: 1px solid #adadad;display:inline-block;line-height:16px !important; " align="center">

                   <p>{{$product->name}}</p>

                   <?php echo '<img src="data:image/png;base64,' . DNS1D::getBarcodePNG($product->code, "c128A",1,40,array(1,1,1), true) . '"   />'; ?>

                   <br>

                   <small style="font-size: 8px !important;"><b>{{$product->code}}</b></small>

                   <p style="line-height: 12px !important; font-size: 8px !important;">

                      <b>Price: {{$product->sale_price}} </b>

                   </p>

                </div>

             </div>

          </div>

       </div>

    </div>

@endforeach

Foreach构造提供了一种简单的方法来迭代数组。


查看完整回答
反对 回复 2021-11-05
?
慕慕森

TA贡献1856条经验 获得超17个赞

我只有 1 个条码数据,但我想在页面上显示多达 20 个条码……所以,当我打印一个条码时,我可以打印多达 20 个条码,而不仅仅是一个


使用@for


@for ($i = 0; $i < 20; $i++)

    // put HTML for barcode here

@endfor


查看完整回答
反对 回复 2021-11-05
  • 3 回答
  • 0 关注
  • 247 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信