如何根据 Laravel 中发送到 blade 的数据显示 div
How to show div based on data sent to blade in Laravel
我有两个 div(inputbarang
和 inputkategori
)。当其中没有数据时,我想让 div 之一消失。比如$produk
的值不为null时,inputbarang
的div会出现,inputkategori
的div会隐藏.然而,如果 $produk
为空,则 inputbarang
的 div 将被隐藏,而 inputkategori
的 div 将出现。我这样试试当$produk
为null时,inputbarang
的div仍然出现,inputkategori
的div不出现
Blade.php:
@if($produk !== null)
<div class="form-group row " id="inputbarang" >
<label class="col-form-label col-lg-3 col-sm-12">Barang</label>
<div class="col-lg-4 col-md-9 col-sm-12">
<select class="form-control m-select2" width="500px" id="kt_select2_1" name="id_product[]" multiple="multiple">
@foreach($productall as $p)
@if(in_array($p->id, $productbyIds))
<option value="{{ $p->id }}" selected="true">{{ $p->product }}</option>
@else
<option value="{{ $p->id }}">{{ $p->product }}</option>
@endif
@endforeach
</select>
</div>
</div>
@else
<div class="form-group row" id="inputkategori" >
<label class="col-form-label col-lg-3 col-sm-12">Kategori</label>
<div class="col-lg-9 col-md-9 col-sm-12">
<select class="form-control m-select2" width="500px" id="kt_select2_3" name="id_kategori[]" multiple="multiple">
@foreach($kategoriall as $k)
@if(in_array($k->id, $kategoribyIds))
<option value="{{ $k->id }}" selected="true">{{ $k->kategori }}</option>
@else
<option value="{{ $k->id }}">{{ $k->kategori }}</option>
@endif
@endforeach
</select>
</div>
</div>
@endif
控制器:
$produk = Produk::where('m_product.delete', 0)
->join('tb_promo_detail', 'tb_promo_detail.id_product','=','m_product.id')
->select('m_product.id', 'm_product.product')
->where('tb_promo_detail.id_promo',$id)
->get();
如有不妥请指正..万分感谢!
由于您正在从控制器向您的 blade 发送 collection,因此您需要检查 collection 是否为空。仅仅检查它是否为 null 或空数组不会给你正确的条件效果。
所以使用:
@if($produk->first())
或者您也可以使用
@if(!$produk->isEmpty())
我有两个 div(inputbarang
和 inputkategori
)。当其中没有数据时,我想让 div 之一消失。比如$produk
的值不为null时,inputbarang
的div会出现,inputkategori
的div会隐藏.然而,如果 $produk
为空,则 inputbarang
的 div 将被隐藏,而 inputkategori
的 div 将出现。我这样试试当$produk
为null时,inputbarang
的div仍然出现,inputkategori
的div不出现
Blade.php:
@if($produk !== null)
<div class="form-group row " id="inputbarang" >
<label class="col-form-label col-lg-3 col-sm-12">Barang</label>
<div class="col-lg-4 col-md-9 col-sm-12">
<select class="form-control m-select2" width="500px" id="kt_select2_1" name="id_product[]" multiple="multiple">
@foreach($productall as $p)
@if(in_array($p->id, $productbyIds))
<option value="{{ $p->id }}" selected="true">{{ $p->product }}</option>
@else
<option value="{{ $p->id }}">{{ $p->product }}</option>
@endif
@endforeach
</select>
</div>
</div>
@else
<div class="form-group row" id="inputkategori" >
<label class="col-form-label col-lg-3 col-sm-12">Kategori</label>
<div class="col-lg-9 col-md-9 col-sm-12">
<select class="form-control m-select2" width="500px" id="kt_select2_3" name="id_kategori[]" multiple="multiple">
@foreach($kategoriall as $k)
@if(in_array($k->id, $kategoribyIds))
<option value="{{ $k->id }}" selected="true">{{ $k->kategori }}</option>
@else
<option value="{{ $k->id }}">{{ $k->kategori }}</option>
@endif
@endforeach
</select>
</div>
</div>
@endif
控制器:
$produk = Produk::where('m_product.delete', 0)
->join('tb_promo_detail', 'tb_promo_detail.id_product','=','m_product.id')
->select('m_product.id', 'm_product.product')
->where('tb_promo_detail.id_promo',$id)
->get();
如有不妥请指正..万分感谢!
由于您正在从控制器向您的 blade 发送 collection,因此您需要检查 collection 是否为空。仅仅检查它是否为 null 或空数组不会给你正确的条件效果。
所以使用:
@if($produk->first())
或者您也可以使用
@if(!$produk->isEmpty())