Добавить разделитель между foreach возвращаемыми значениями - PullRequest
0 голосов
/ 16 мая 2019

У меня есть следующие foreach возвращаемые значения:

@foreach($content['order'] as $products)
    <tr>
        <td><span>{{ $products->Type }} {{ $products->Nom }} {{ $products->{'# Personnes'} }} {{ $products->Inscription }} {{ $products->{'Décoration Chocolat et fruits'} }} {{ $products->{'Décoration petites fleurs'} }} {{ $products->Décoration }} {{ $products->{'Nombre de sandwiches'} }} {{ $products->Poids }} {{ $products->{'Assortiment 1'} }} {{ $products->{'Assortiment 2'} }} {{ $products->{'Assortiment 3'} }} {{ $products->{'Assortiment 4'} }} {{ $products->{'Couleur Ruban'} }} {{ number_format($products->Prix, 2) }} {{ number_format($products->Supplément, 2) }} {{ number_format($products->{'Supplément décoration'}, 2) }} {{ number_format($products->Total, 2) }}</td>
    </tr>
@endforeach

Я хотел бы добавить разделитель между каждым возвращаемым значением (кроме последнего).

Я добавил

.' | '

{{ $products->Type.' | ' }} {{ $products->Nom.' | ' }} {{ $products->{'# Personnes'}.' | ' }} {{ $products->Inscription.' | ' }} {{ $products->{'Décoration Chocolat et fruits'}.' | ' }} {{ $products->{'Décoration petites fleurs'}.' | ' }} {{ $products->Décoration.' | ' }} {{ $products->{'Nombre de sandwiches'}.' | ' }} {{ $products->Poids.' | ' }} {{ $products->{'Assortiment 1'}.' | ' }} {{ $products->{'Assortiment 2'}.' | ' }} {{ $products->{'Assortiment 3'}.' | ' }} {{ $products->{'Assortiment 4'}.' | ' }} {{ $products->{'Couleur Ruban'}.' | ' }} {{ number_format($products->Prix, 2).' | ' }} {{ number_format($products->Supplément, 2).' | ' }} {{ number_format($products->{'Supplément décoration'}, 2).' | ' }} {{ number_format($products->Total, 2) }}

Проблема у меня в том, что разделитель добавляется, даже если значение не возвращается

Pie | Chocolate | 2-3 servings | Text | Decoration chocolate | Decoration flowers | | | | | | | | | 19.00 | 5.00 | 0.00 | 24.00

Как распечатать разделитель, только если возвращено значение.

Спасибо

Ответы [ 4 ]

1 голос
/ 16 мая 2019
@if(isset($products->Type)) {{ $products->Type. '|' }}  @endif 

Это пример вашего первого ряда, как вы можете справиться с этим.Вы проверяете, существует ли и echo результат, соединяющий разделитель с ним.

мелочь, обратите внимание на тег span, вы не закрываете его в предоставленном вами коде.

0 голосов
/ 16 мая 2019

Превратиться в массив, отфильтровать пустые значения и взорваться строкой "|"

 {{join("|", array_filter([
 $products->Type ,
 $products->Nom ,
 $products->{'# Personnes'} ,
 $products->Inscription ,
 $products->{'Décoration Chocolat et fruits'} ,
 $products->{'Décoration petites fleurs'} ,
 $products->Décoration ,
 $products->{'Nombre de sandwiches'} ,
 $products->Poids ,
 $products->{'Assortiment 1'} ,
 $products->{'Assortiment 2'} ,
 $products->{'Assortiment 3'} ,
 $products->{'Assortiment 4'} ,
 $products->{'Couleur Ruban'} ,
 number_format($products->Prix, 2) ,
 number_format($products->Supplément, 2) ,
 number_format($products->{'Supplément décoration'}, 2) ,
 number_format($products->Total, 2)
 ]))}}
0 голосов
/ 16 мая 2019

Есть несколько способов сделать это, но один довольно динамичный способ - вместо этого извлечь все значения в массив, отфильтровать его для непустых значений и взорвать его.

Мы будем использовать стандартный PHP, который вы можете сделать с помощью лезвий.

<?php
foreach($content['order'] as $products) {
    $values = [];
    $values[] = $products->Type;
    $values[] = $products->Nom;
    $values[] = $products->{'# Personnes'};
    $values[] = $products->Inscription;
    $values[] = $products->{'Décoration Chocolat et fruits'};
    $values[] = $products->{'Décoration petites fleurs'};
    $values[] = $products->Décoration;
    $values[] = $products->{'Nombre de sandwiches'};
    $values[] = $products->Poids;
    $values[] = $products->{'Assortiment 1'};
    $values[] = $products->{'Assortiment 2'};
    $values[] = $products->{'Assortiment 3'};
    $values[] = $products->{'Assortiment 4'};
    $values[] = $products->{'Couleur Ruban'};
    $values[] = number_format($products->Prix, 2);
    $values[] = number_format($products->Supplément, 2);
    $values[] = number_format($products->{'Supplément décoration'}, 2);
    $values[] = number_format($products->Total, 2);

    echo "<td>".implode(" | ", array_filter($values))."</td>";
}
?>
0 голосов
/ 16 мая 2019

Вы можете использовать троичный оператор как короткую руку для того же самого,

{{ !empty($products->Type) ? $products->Type.' | ': '' }}

Сделайте это для всех полей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...