Laravel,检查logging是否存在并在表格中显示的最好/替代方法是什么?

目前即时通讯使用Laravel-Excel(MaatWebsite),并希望检查excel数据是否与数据库“家具”表中的数据相同

调节器

// assume $id is retrieve from parameter $check_furnitures = Furniture::where('company_no', $id)->get(); $rows = Excel::load('storage\\app\\public\\upload\\furniture.xlsx', function($reader){$reader->noHeading();$reader->skipRows(1)})->get(); 

视图

 <table> <thead> <tr> <td>Chair Name></td> <td>Desk Name></td> <td>Carpet Name></td> <td>Status</td> </tr> </thead> <tbody> <?php $arr = array(); ?> @foreach($rows as $key => $value) @foreach($check_furnitures as $fur) @if( $fur->chairs == $value[1] && $fur->desks == $value[2] && $fur->carpets == $pvalue[3] ) <?php $temp_array[] = $value[0] ?> @endif @endforeach @endforeach <tr> <td>{{$value[1]}}</td> <td>{{$value[2]}}</td> <td>{{$value[3]}}</td> <td> @foreach($arr as $test) @if($test == $value[0]) DUPLICATED VALUE @endif @endforeach </td> <tr> <table> 

Excel文件

在这里输入图像说明

最有效的方法是首先索引数据库结果而不是循环。 Laravel有一个$collection->keyBy('id')这样你可以稍后$collection->get($id)

话虽如此,你可以这样做:

 <table> <thead> <tr> <td>Chair Name></td> <td>Desk Name></td> <td>Carpet Name></td> <td>Status</td> </tr> </thead> <tbody> @php $arr = array(); $check_furnitures->keyBy('number'); @endphp @foreach ($rows as $key => $row) <tr> <td>{{ $row->chair }}</td> <td>{{ $row->desk }}</td> <td>{{ $row->table }}</td> <td> @if($check_furnitures->get($row->number) !== null) DUPLICATED VALUE @endif </td> </tr> @endforeach </tbody> </table>