Я вызываю некоторые API, чтобы заполнить массив. Конечный вывод что-то вроде следующегоLaravel Blade - Отображение содержимого массива
Array
(
[0] => Array
(
[leadData] => Array
(
[LeadID] => 1232806
[DateIdentified] => 21/04/2016
[Client] => Prospect 1
[LeadName] => Test
[Owner] => Some Owner
[Value] => 2160.00
[Status] => 70%
)
[clientData] => Array
(
[BusinessStructure] =>
[IsProspect] => No
)
[quoteData] => Array
(
[QuoteID] => Q0020
[ProjectName] => Test
[Amount] => 1800.00
[AmountTax] => 360.00
[AmountIncludingTax] => 2160.00
[EstimatedCost] => 450.00
[EstimatedCostTax] => 90.00
[EstimatedCostIncludingTax] => 540.00
)
[customData] => Array
(
[0] => Array
(
[Lead Type] => New
)
[1] => Array
(
[Month] => June
)
)
)
[1] => Array
(
[leadData] => Array
(
[LeadID] => 1230279
[DateIdentified] => 19/04/2016
[Client] => Bank1
[LeadName] => test 3
[Owner] => Some Owner
[Value] => 36000.00
[Status] => 50%
)
[clientData] => Array
(
[BusinessStructure] =>
[IsProspect] => No
)
[quoteData] => Array
(
[QuoteID] => Q0016
[ProjectName] => test 3
[Amount] => 30000.00
[AmountTax] => 6000.00
[AmountIncludingTax] => 36000.00
[EstimatedCost] => 0.00
[EstimatedCostTax] => 0.00
[EstimatedCostIncludingTax] => 0.00
)
)
)
Одна вещь, чтобы отметить, что иногда не вся информация есть, просто потому, что он не доступен. Таким образом, вы можете видеть, что Array 0 имеет некоторые customData, тогда как Array 1 этого не делает. Другие элементы могут даже не иметь раздел quotData и т. Д.
Итак, у моего шаблона клинка есть эта информация. Я в основном хочу показать все данные, но если он недоступен, просто покажите пустую ячейку. Таким образом, у меня есть следующие заголовки
<table class="table table-bordered table-hover additionalMargin alignment">
<tr class="col-md-12 noPadding">
<thead>
<tr>
<th>Lead ID</th>
<th>Client Name</th>
<th>Is Prospect</th>
<th>Business Structure</th>
<th>Quote ID</th>
<th>Project Name</th>
<th>Amount</th>
<th>Amount Tax</th>
<th>Amount inc Tax</th>
<th>Cost</th>
<th>Cost Tax</th>
<th>Cost inc Tax</th>
<th>Type</th>
<th>Month</th>
</tr>
</thead>
</tr>
<tbody>
</tbody>
</table>
Однако в TBODY, что я делаю, кажется, очень грязный, единственный способ, которым я могу получить данные в правильном месте, если я все проверить, например,
@if(is_array($leadArray))
@foreach($leadArray as $array)
<tr>
<td>
@if(!empty($array['leadData']))
{{ $array['leadData']['LeadID'] }}
@endif
</td>
<td>
@if(!empty($array['leadData']))
{{ $array['leadData']['Client'] }}
@endif
</td>
<td>
@if(!empty($array['clientData']))
{{ $array['clientData']['IsProspect'] }}
@endif
</td>
<td>
@if(!empty($array['clientData']))
{{ $array['clientData']['BusinessStructure'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['QuoteID'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['ProjectName'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['Amount'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['AmountTax'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['AmountIncludingTax'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['EstimatedCost'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['EstimatedCostTax'] }}
@endif
</td>
<td>
@if(!empty($array['quoteData']))
{{ $array['quoteData']['EstimatedCostIncludingTax'] }}
@endif
</td>
@if(!empty($array['customData']))
@foreach($array['customData'] as $data)
<td>
@if(!empty($data['Lead Type']))
{{ $data['Lead Type'] }}
@endif
</td>
<td>
@if(!empty($data['Month']))
{{ $data['Month'] }}
@endif
</td>
@endforeach
@else
<td></td>
<td></td>
@endif
</tr>
@endforeach
@endif
Есть ли более простой способ сделать это? Или это мой единственный вариант?
Благодаря
Вы можете сделать '{{@ $ массива [«leadData»] [ 'Клиент ']}} 'для подавления ошибок, когда данные отсутствуют. Или предварительно обработайте массив таким образом, который заполняет любые отсутствующие данные с помощью 'null'. – ceejayoz
@ceejayoz, интересно. Документировано ли это где угодно? Если нет, то как это работает? –
@AlexeyMezenin '@' - оператор подавления ошибок PHP. Подробнее см. Http://php.net/manual/en/language.operators.errorcontrol.php. Его следует использовать редко, но ваш выглядит как потенциально подходящий вариант использования. – ceejayoz